Projekt

Obecné

Profil

« Předchozí | Další » 

Revize fdf6c32d

Přidáno uživatelem Michal Schwob před asi 2 roky(ů)

Administation page finished
re #9818

Zobrazit rozdíly:

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