25 lines
499 B
TypeScript
25 lines
499 B
TypeScript
import { User } from '@/api/auth.types';
|
|
import { atom, selector } from 'recoil';
|
|
|
|
export const userState = atom({
|
|
key: 'userState',
|
|
default: undefined as User | undefined
|
|
});
|
|
|
|
export const hasUserState = selector({
|
|
key: 'hasUserState',
|
|
get: ({ get }) => {
|
|
const user = get(userState);
|
|
return user !== undefined;
|
|
}
|
|
});
|
|
|
|
export const isAdminState = selector({
|
|
key: 'isAdminState',
|
|
get: ({ get }) => {
|
|
const user = get(userState);
|
|
return user?.role === 'admin';
|
|
}
|
|
});
|
|
|