Files
ordr/ordr-ui/app/providers/AuthenticationProvider.ts
2025-11-19 12:26:37 -07:00

28 lines
651 B
TypeScript

import { create } from 'zustand'
import { UserResponse } from '../client/response'
import { GetCurrentUser, SetUserName } from '../client/controllers'
export type UserActions = {
sync: () => Promise<UserResponse | undefined>
updateName: (name: string) => Promise<void>
}
export const useCurrentAuthenticatedUserStore = create<UserResponse & UserActions>((set) => ({
Id: -1,
Name: '',
JobPosition: '',
Active: false,
Admin: false,
sync: async () => {
const authUser = await GetCurrentUser()
set((state) => ({
...state,
...authUser
}))
return authUser
},
updateName: async (name: string) => {
await SetUserName(name)
}
}))