Skip to content
This repository was archived by the owner on Mar 13, 2025. It is now read-only.

Commit d935ee3

Browse files
committed
fix: issue #37
1 parent 5596aad commit d935ee3

File tree

5 files changed

+20
-32
lines changed

5 files changed

+20
-32
lines changed

package-lock.json

+1-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"dev": "webpack-dev-server --port 8501 --host 0.0.0.0",
66
"dev-https": "webpack-dev-server --https --port 8501 --host 0.0.0.0",
77
"build": "webpack --mode=${APPMODE:-development} --env.config=${APPENV:-dev}",
8-
"build:prod": "webpack --mode=${APPMODE:-production} --env.config=${APPENV:-prod}",
98
"analyze": "webpack --mode=production --env.analyze=true",
109
"lint": "eslint src --ext js",
1110
"format": "prettier --write \"./**\"",
@@ -75,8 +74,7 @@
7574
"redux": "^4.0.5",
7675
"redux-logger": "^3.0.6",
7776
"redux-promise-middleware": "^6.1.2",
78-
"redux-thunk": "^2.3.0",
79-
"use-debounce": "^5.2.0"
77+
"redux-thunk": "^2.3.0"
8078
},
8179
"browserslist": [
8280
"last 1 version",

src/routes/MyTeamsList/index.jsx

+13-8
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,36 @@
66
import React, { useCallback, useState, useEffect } from "react";
77
import _ from "lodash";
88
import LayoutContainer from "components/LayoutContainer";
9-
import { useDebouncedCallback } from "use-debounce";
109
import PageHeader from "components/PageHeader";
1110
import Input from "components/Input";
1211
import Pagination from "components/Pagination";
1312
import { getMyTeams } from "../../services/teams";
1413
import TeamCard from "./components/TeamCard";
1514
import TeamCardGrid from "./components/TeamCardGrid";
1615
import LoadingIndicator from "../../components/LoadingIndicator";
17-
import { useAsync } from "react-use";
16+
import { useDebounce } from "react-use";
1817
import { TEAMS_PER_PAGE } from "constants";
1918
import "./styles.module.scss";
2019

2120
const MyTeamsList = () => {
22-
// let [myTeams, loadingError] = useData(getMyTeams);
23-
let [myTeams, setMyTeams] = useState();
21+
let [myTeams, setMyTeams] = useState(null);
2422
const [filter, setFilter] = useState("");
23+
const [tempFilter, setTempFilter] = React.useState('');
2524
const [loadingError, setLoadingError] = useState(false);
2625
const [page, setPage] = useState(1);
2726
const [total, setTotal] = useState(0);
27+
const onFilterChange = (evt) => {
28+
setTempFilter(evt.target.value)
29+
}
2830

29-
const onFilterChange = useDebouncedCallback((value) => {
30-
setFilter(value);
31+
useDebounce((value) => {
32+
console.log('xxxx', value)
33+
setFilter(tempFilter);
3134
setPage(1);
32-
}, 200);
35+
}, 200, [tempFilter]);
3336

3437
useEffect(() => {
38+
setMyTeams(null);
3539
getMyTeams(filter, page, TEAMS_PER_PAGE)
3640
.then((response) => {
3741
setMyTeams(response.data);
@@ -57,10 +61,11 @@ const MyTeamsList = () => {
5761
<Input
5862
placeholder="Filter by team name"
5963
styleName="filter-input"
60-
onChange={(e) => onFilterChange.callback(e.target.value)}
64+
onChange={onFilterChange}
6165
/>
6266
}
6367
/>
68+
{myTeams && myTeams.length === 0 && (<div styleName="empty">No teams found</div>)}
6469
{!myTeams ? (
6570
<LoadingIndicator error={loadingError && loadingError.toString()} />
6671
) : (

src/routes/MyTeamsList/styles.module.scss

+3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
}
1919
}
2020

21+
.empty {
22+
text-align: center;
23+
}
2124

2225
.pagination-wrapper {
2326
margin-top: 20px;

src/services/requestInterceptor.js

+2-14
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,6 @@ import axios from "axios";
22
import store from "../store";
33
import { getAuthUserTokens } from "@topcoder/micro-frontends-navbar-app";
44

5-
export const getToken = () => {
6-
return new Promise((resolve, reject) => {
7-
return getAuthUserTokens()
8-
.then(({ tokenV3: token }) => {
9-
return resolve(token);
10-
})
11-
.catch((err) => {
12-
reject(err);
13-
});
14-
});
15-
};
16-
175
export const axiosInstance = axios.create({
186
headers: {
197
"Content-Type": "application/json",
@@ -22,8 +10,8 @@ export const axiosInstance = axios.create({
2210

2311
// request interceptor to pass auth token
2412
axiosInstance.interceptors.request.use((config) => {
25-
return getToken()
26-
.then((token) => {
13+
return getAuthUserTokens()
14+
.then(({ tokenV3: token }) => {
2715
config.headers["Authorization"] = `Bearer ${token}`;
2816
return config;
2917
})

0 commit comments

Comments
 (0)