infinity-forge
Version:
63 lines (62 loc) • 1.56 kB
TypeScript
export type UserState = {
[key: string]: {
user?: UserAdmin | undefined | null;
loadUserConfig?: {
queryFn?(args: any): Promise<UserAdmin>;
args?: any;
};
signInConfig?: {
Component?: () => React.ReactNode;
};
privatePage?: {
permissionPageRule?: (user: UserAdmin) => boolean;
PermissionPageRuleComponent?: () => React.ReactNode;
};
onSignOut?: (user: UserAdmin) => void;
interceptor?: {
disableInterceptor?: boolean;
};
};
};
export type AuthAdminProviderProps = {
children?: React.ReactNode;
roles: UserState;
apiURL?: string;
ForbiddenCompoent?: () => React.ReactNode;
};
export type AuthAdminParams = {
emailAddress: string;
password: string;
roleUser?: string;
apiURL?: string;
};
export type IAuthContextType = {
user?: any;
roles: UserState;
signOut(params?: {
onSignOut: () => {};
}): Promise<void>;
roleUser: string;
signIn(params: AuthAdminParams): Promise<void>;
loadUser({ roleName }: {
roleName?: string;
}): Promise<void>;
} & AuthAdminProviderProps;
export type AuthAdminResponse = {
token: string;
};
export type UserAdmin = {
avatar: string;
emailAddress: string;
firstName: string;
id: number;
imagem: null;
isExternal: boolean;
lastName: string;
city: string;
zipcode: string;
state: string;
street: string;
district: string;
role: string;
};