diff --git a/src/api/UserProvider.tsx b/src/api/UserProvider.tsx index 2382ba98afab4692ba0422208c17e8de30f8215a..a2aeb551c20d80c9c3c0185bedb2c0ff03b98527 100644 --- a/src/api/UserProvider.tsx +++ b/src/api/UserProvider.tsx @@ -1,15 +1,22 @@ -import { useCallback, useEffect, useState } from "react"; +import { useCallback, useEffect, useState, type ReactNode } from "react"; import { userContext } from "@ess-ics/ce-ui-common"; import { useLoginMutation, useLogoutMutation, useInfoFromUserNameQuery, - useGetUserRolesQuery + useGetUserRolesQuery, + InfoFromUserNameApiResponse, + GetUserRolesApiResponse } from "../store/deployApi"; +import { getErrorState } from "../components/common/Alerts/AlertsData"; -export function UserProvider({ children }) { - const [user, setUser] = useState(null); - const [userRoles, setUserRoles] = useState([]); +export function UserProvider({ children }: { children: ReactNode }) { + const [user, setUser] = useState<InfoFromUserNameApiResponse | undefined>( + undefined + ); + const [userRoles, setUserRoles] = useState< + GetUserRolesApiResponse | undefined + >(undefined); const [ callLogin, @@ -22,18 +29,16 @@ export function UserProvider({ children }) { ] = useLoginMutation(); const [callLogout, { isLoading: logoutLoading }] = useLogoutMutation(); const { data: userResponse, isLoading: userLoading } = - useInfoFromUserNameQuery({ - skip: !loginResponse - }); + useInfoFromUserNameQuery({}, { skip: !loginResponse }); const { data: userRolesResponse, isLoading: userRolesLoading } = - useGetUserRolesQuery({ skip: !loginResponse }); + useGetUserRolesQuery(undefined, { skip: !loginResponse }); const initialized = Boolean( !loginLoading || !logoutLoading || !userLoading || !userRolesLoading ); const login = useCallback( - (username, password) => { + (username: string, password: string) => { callLogin({ login: { userName: username, password } }); }, [callLogin] @@ -46,8 +51,8 @@ export function UserProvider({ children }) { const logout = useCallback(() => { callLogout(); - setUser(null); - setUserRoles([]); + setUser(undefined); + setUserRoles(undefined); }, [callLogout, setUser, setUserRoles]); return ( @@ -57,7 +62,7 @@ export function UserProvider({ children }) { user, userRoles, login, - loginError: loginError?.data?.description, + loginError: getErrorState(loginError).message, logout, resetLoginError: resetLogin }}