Revize ed410564
Přidáno uživatelem Michal Schwob před asi 2 roky(ů)
frontend/src/features/Administration/Administration.tsx | ||
---|---|---|
19 | 19 |
import { |
20 | 20 |
clear, |
21 | 21 |
consumeError, |
22 |
resetIsRequestCompleted, |
|
22 | 23 |
setLoading, |
23 | 24 |
setSelectedUser |
24 | 25 |
} from "./userDetailSlice" |
... | ... | |
34 | 35 |
const loading = useSelector((state: RootState) => state.usersDetail.loading) |
35 | 36 |
const apiError = useSelector((state: RootState) => state.usersDetail.error) |
36 | 37 |
const selectedUser = useSelector((state: RootState) => state.usersDetail.selectedUser) |
38 |
const isRequestCompleted = useSelector((state: RootState) => state.usersDetail.isRequestCompleted) |
|
37 | 39 |
const [selectedUserId, setSelectedUserId] = useState<number | undefined>(undefined) |
38 | 40 |
|
39 | 41 |
// Local state to display any error relevant error |
... | ... | |
59 | 61 |
// Use effect to read the error and consume it |
60 | 62 |
useEffect(() => { |
61 | 63 |
if (users.length > 0) { |
62 |
setSelectedUserId(0) |
|
63 |
dispatch(setSelectedUser(users.at(0))) |
|
64 |
console.log("selected id: " + selectedUser) |
|
64 |
// if there is user selected, leave that state - handled by useEffect on isRequestCompleted |
|
65 |
if (selectedUser !== undefined) { |
|
66 |
const selUser = users.find(u => u.email === selectedUser.email) |
|
67 |
if (selUser !== undefined) { |
|
68 |
console.log("Selected from before") |
|
69 |
console.log(selUser) |
|
70 |
setSelectedUserId(users.findIndex(u => u.email === selectedUser.email)) |
|
71 |
dispatch(setSelectedUser(selUser)) |
|
72 |
return |
|
73 |
} |
|
74 |
} else { |
|
75 |
setSelectedUserId(0) |
|
76 |
dispatch(setSelectedUser(users.at(0))) |
|
77 |
} |
|
65 | 78 |
} |
66 |
}, [users]) |
|
79 |
}, [users, dispatch]) |
|
80 |
|
|
81 |
useEffect(() => { |
|
82 |
if (isRequestCompleted) { |
|
83 |
dispatch(resetIsRequestCompleted()) |
|
84 |
// dispatch(clear()) |
|
85 |
dispatch(fetchUsers()) |
|
86 |
// setSelectedUserId(0) |
|
87 |
// dispatch(setSelectedUser(users.at(0))) |
|
88 |
// |
|
89 |
// if (users.length > 0) { |
|
90 |
// setSelectedUserId(0) |
|
91 |
// dispatch(setSelectedUser(users.at(0))) |
|
92 |
// console.log("selected id: " + selectedUser) |
|
93 |
// } |
|
94 |
} |
|
95 |
}, [isRequestCompleted, dispatch]) |
|
67 | 96 |
|
68 | 97 |
|
69 | 98 |
// Use effect to read the error and consume it |
... | ... | |
87 | 116 |
} |
88 | 117 |
}, [dispatch]) |
89 | 118 |
|
90 |
const childClosed = () => { |
|
91 |
dispatch(clear()) |
|
92 |
dispatch(fetchUsers()) |
|
93 |
setSelectedUserId(0) |
|
94 |
dispatch(setSelectedUser(users.at(0))) |
|
95 |
} |
|
96 |
|
|
97 | 119 |
return ( |
98 | 120 |
<Fragment> |
99 | 121 |
<ShowErrorIfPresent err={displayError} /> |
... | ... | |
129 | 151 |
</Grid> |
130 | 152 |
<Grid item md={9} xs={6}> |
131 | 153 |
{selectedUserId !== undefined ? |
132 |
<UserDetail user={selectedUser as UserDto} onClose={childClosed} />
|
|
154 |
<UserDetail user={selectedUser as UserDto}/> |
|
133 | 155 |
: null } |
134 | 156 |
</Grid> |
135 | 157 |
</Grid> |
Také k dispozici: Unified diff
Administation page finished
re #9818