diff --git a/src/Pages/UsersAdminDash/UsersAdminDash.tsx b/src/Pages/UsersAdminDash/UsersAdminDash.tsx index 93dab0e..e70bca8 100644 --- a/src/Pages/UsersAdminDash/UsersAdminDash.tsx +++ b/src/Pages/UsersAdminDash/UsersAdminDash.tsx @@ -87,17 +87,31 @@ function UsersAdminDash() { setOptionsMenuPosition(position) } + async function fetchData() { + const response = await axios.get(`${process.env.BACKEND_URL}/api/users?page=${page}&rowsPerPage=5`, + { + headers: { + 'authorization': `Bearer ${token}` + } + }) + setUsers(response.data.data.users) + setPageCount(response.data.data.pagination.pageCount) + } + + async function refreshData(){ + fetchData() + .then(() => { + setSpinnerActive(false) + }) + .catch(err => { + setSpinnerActive(false) + if (err.response && err.response.status === 401) { + navigate('/login') + } + }) + } + useEffect(() => { - async function fetchData() { - const response = await axios.get(`${process.env.BACKEND_URL}/api/users?page=${page}&rowsPerPage=5`, - { - headers: { - 'authorization': `Bearer ${token}` - } - }) - setUsers(response.data.data.users) - setPageCount(response.data.data.pagination.pageCount) - } fetchData() .then(() => { @@ -182,7 +196,7 @@ function UsersAdminDash() { setChangeUserRolePopupActive(state)} setSpinnerActive={setSpinnerActive} > : '' @@ -192,7 +206,7 @@ function UsersAdminDash() { setdisableUserPopupActive(state)} setSpinnerActive={setSpinnerActive} > : '' diff --git a/src/components/ChangeUserRolePopup/ChangeUserRolePopup.tsx b/src/components/ChangeUserRolePopup/ChangeUserRolePopup.tsx index 591bcd7..df44172 100644 --- a/src/components/ChangeUserRolePopup/ChangeUserRolePopup.tsx +++ b/src/components/ChangeUserRolePopup/ChangeUserRolePopup.tsx @@ -12,12 +12,12 @@ import { toast } from 'react-toastify'; interface Props { page: number, selectedUser: User, - updateUsers: (users: User[]) => void, + refreshData: () => void, handlePopup: (state: boolean) => void, setSpinnerActive: (param: boolean | ((prev: boolean) => boolean)) => void, } -function ChangeUserRolePopup({ page, selectedUser, updateUsers, handlePopup, setSpinnerActive }: Props) { +function ChangeUserRolePopup({ page, selectedUser,refreshData, handlePopup, setSpinnerActive }: Props) { const [selectedRole, setSelectedRole] = useState(selectedUser.role) @@ -42,15 +42,7 @@ function ChangeUserRolePopup({ page, selectedUser, updateUsers, handlePopup, set 'authorization': `Bearer ${token}`, } }) - console.log(response) - const userResponse = await axios.get(`${process.env.BACKEND_URL}/api/users?page=${page}`, - { - headers: { - 'authorization': `Bearer ${token}`, - } - }) - updateUsers(userResponse.data.data.users) - setSpinnerActive(prev => !prev) + refreshData() toast.success("User Role Changed") handlePopup(false) } catch (err: any) { diff --git a/src/components/DisableUserPopup/DisableUserPopup.tsx b/src/components/DisableUserPopup/DisableUserPopup.tsx index cc42e24..a87c74f 100644 --- a/src/components/DisableUserPopup/DisableUserPopup.tsx +++ b/src/components/DisableUserPopup/DisableUserPopup.tsx @@ -12,12 +12,12 @@ import { toast } from "react-toastify"; interface Props { page: number, selectedUser: User, - updateUsers: (users: User[]) => void, + refreshData: () => void, handlePopup: (state: boolean) => void, setSpinnerActive: (param: boolean | ((prev: boolean) => boolean)) => void, } -function DisableUserPopup({ page,selectedUser,updateUsers,handlePopup,setSpinnerActive }: Props) { +function DisableUserPopup({ page, selectedUser, refreshData, handlePopup, setSpinnerActive }: Props) { const [reason, setReason] = useState('') const { token } = useSelector( (state: RootState) => state.token @@ -25,9 +25,9 @@ function DisableUserPopup({ page,selectedUser,updateUsers,handlePopup,setSpinner const navigate = useNavigate() async function handleDisableUser() { - try{ + try { handlePopup(false) - setSpinnerActive(prev=>!prev) + setSpinnerActive(prev => !prev) const response = await axios.put(`${process.env.BACKEND_URL}/api/users/disable/${selectedUser.userId}`, { reason: reason }, { @@ -35,22 +35,13 @@ function DisableUserPopup({ page,selectedUser,updateUsers,handlePopup,setSpinner 'authorization': `Bearer ${token}`, }, }) - console.log(response) - const userResponse = await axios.get(`${process.env.BACKEND_URL}/api/users?page=${page}`, - { - headers: { - 'authorization': `Bearer ${token}`, - }, - }) - console.log(userResponse) - updateUsers(userResponse.data.data.users) - setSpinnerActive(prev=>!prev) + refreshData() toast.success(response.data.message) - }catch(err: any){ + } catch (err: any) { console.log(err) - setSpinnerActive(prev=>!prev) - toast(err.message); - if(err.response && err.response.status===401) navigate('/login') + setSpinnerActive(prev => !prev) + toast(err.message); + if (err.response && err.response.status === 401) navigate('/login') } } @@ -59,7 +50,7 @@ function DisableUserPopup({ page,selectedUser,updateUsers,handlePopup,setSpinner } function handleClickingOutside(event: any) { - if(!event.target.closest("#disableUser"))handlePopup(false) + if (!event.target.closest("#disableUser")) handlePopup(false) } useEffect(() => {