feat(ui): added api hooks and state hooks for dashboard

This commit is contained in:
akhilmhdh
2023-03-19 00:39:18 +05:30
parent 686d3c409d
commit b42c33107e
16 changed files with 588 additions and 26 deletions
+2
View File
@@ -5,6 +5,8 @@ export {
useDeleteOrgMembership,
useGetOrgUsers,
useGetUser,
useGetUserAction,
useLogoutUser,
useRegisterUserAction,
useUpdateOrgUserRole
} from './queries';
+26
View File
@@ -20,6 +20,7 @@ import {
const userKeys = {
getUser: ['user'] as const,
userAction: ['user-action'] as const,
getOrgUsers: (orgId: string) => [{ orgId }, 'user']
};
@@ -31,6 +32,21 @@ const fetchUserDetails = async () => {
export const useGetUser = () => useQuery(userKeys.getUser, fetchUserDetails);
const fetchUserAction = async (action: string) => {
const { data } = await apiRequest.get<{ userAction: string }>('/api/v1/user-action', {
params: {
action
}
});
return data.userAction;
};
export const useGetUserAction = (action: string) =>
useQuery({
queryKey: userKeys.userAction,
queryFn: () => fetchUserAction(action)
});
export const fetchOrgUsers = async (orgId: string) => {
const { data } = await apiRequest.get<{ users: OrgUser[] }>(
`/api/v1/organization/${orgId}/users`
@@ -128,6 +144,16 @@ export const useUpdateOrgUserRole = () => {
});
};
export const useRegisterUserAction = () => {
const queryClient = useQueryClient();
return useMutation<{}, {}, string>({
mutationFn: (action) => apiRequest.post('/api/v1/user-action', { action }),
onSuccess: () => {
queryClient.invalidateQueries(userKeys.userAction);
}
});
};
export const useLogoutUser = () =>
useMutation({
mutationFn: () => apiRequest.post('/api/v1/auth/logout'),