Files
myeasycms-v2/packages/features/accounts/src/hooks/use-personal-account-data.ts
giancarlo bce3479368 Cleanup
2024-03-24 02:23:22 +08:00

56 lines
1.0 KiB
TypeScript

import { useCallback } from 'react';
import { useQuery, useQueryClient } from '@tanstack/react-query';
import { useSupabase } from '@kit/supabase/hooks/use-supabase';
const queryKey = ['personal-account:data'];
export function usePersonalAccountData() {
const client = useSupabase();
const queryFn = async () => {
const { data, error } = await client.auth.getSession();
if (!data.session || error) {
return null;
}
const response = await client
.from('accounts')
.select(
`
id,
name,
picture_url
`,
)
.eq('primary_owner_user_id', data.session.user.id)
.eq('is_personal_account', true)
.single();
if (response.error) {
throw response.error;
}
return response.data;
};
return useQuery({
queryKey,
queryFn,
});
}
export function useRevalidatePersonalAccountDataQuery() {
const queryClient = useQueryClient();
return useCallback(
() =>
queryClient.invalidateQueries({
queryKey,
}),
[queryClient],
);
}