Projekt

Obecné

Profil

« Předchozí | Další » 

Revize ed410564

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

Administation page finished
re #9818

Zobrazit rozdíly:

frontend/src/features/Administration/UserDetail.tsx
5 5
    Paper,
6 6
    Typography,
7 7
    FormGroup,
8
    FormControlLabel, Container
8
    FormControlLabel
9 9
} from '@mui/material'
10 10
import React, {Fragment, useEffect, useState} from 'react'
11 11
import axiosInstance from "../../api/api"
......
14 14
import ClearIcon from "@mui/icons-material/Clear"
15 15
import CheckIcon from '@mui/icons-material/Check';
16 16
import {useDispatch, useSelector} from "react-redux"
17
import {fetchUsers, savePermissions} from "./userDetailThunks"
17
import {deleteUser, savePermissions} from "./userDetailThunks"
18 18
import {RootState} from "../redux/store"
19 19
import {setSelectedUserPermissions} from "./userDetailSlice"
20 20

  
21 21
export interface UserDetailProps {
22
    user: UserDto,
23
    onClose: () => void
22
    user: UserDto
24 23
}
25 24

  
26 25
const UserDetail = (props: UserDetailProps) => {
27
    const selectedUser = useSelector((state: RootState) => state.usersDetail.selectedUser)
26
    const selectedUser: UserDto | undefined = useSelector((state: RootState) => state.usersDetail.selectedUser)
28 27
    const [canRead, setCanRead] = useState(selectedUser?.permissions?.canRead)
29 28
    const [canWrite, setCanWrite] = useState(selectedUser?.permissions?.canWrite)
30 29
    const [canDelete, setCanDelete] = useState(selectedUser?.permissions?.canDelete)
......
69 68
    }
70 69

  
71 70

  
72
    const deleteUser = async () => {
73
        const { data, status } = await axiosInstance.delete(
74
            `/users/${selectedUser?.email}`
75
        )
76
        if (status !== 200) {
77
            // TODO dodělat zpracování erroru
78
            return
79
        }
80
        props.onClose();
71
    const prepareDeleteUser = async () => {
72
        dispatch(deleteUser())
81 73
    }
82 74

  
83 75
    const prepareSavePermissions = () => {
84 76
        dispatch(setSelectedUserPermissions({canRead: canRead, canWrite: canWrite, canDelete: canDelete}))
85 77
        dispatch(savePermissions())
86
        dispatch(fetchUsers())
87 78
    }
88 79

  
89 80
    return (
......
139 130
                <Button startIcon={<ClearIcon />}
140 131
                        variant="contained"
141 132
                        color="primary"
142
                        onClick={deleteUser}
133
                        onClick={prepareDeleteUser}
143 134
                        sx={{ m: 2 }} >
144 135
                    Delete
145 136
                </Button>

Také k dispozici: Unified diff