Updated query hooks for teams and websites.

This commit is contained in:
Mike Cao 2024-01-29 01:32:05 -08:00
parent 9448aa3ab5
commit 2fa50892d8
61 changed files with 508 additions and 539 deletions

View file

@ -8,7 +8,9 @@ export * from './queries/useShareToken';
export * from './queries/useTeam';
export * from './queries/useTeamWebsites';
export * from './queries/useUser';
export * from './queries/useUsers';
export * from './queries/useWebsite';
export * from './queries/useWebsites';
export * from './useCountryNames';
export * from './useDateRange';
export * from './useDocumentClick';

View file

@ -1,9 +1,11 @@
import useStore, { setUser } from 'store/app';
import useApi from './useApi';
import useUser from './useUser';
const selector = (state: { user: any }) => state.user;
export function useLogin() {
const { get, useQuery } = useApi();
const { user, setUser } = useUser();
const user = useStore(selector);
const query = useQuery({
queryKey: ['login'],
@ -14,6 +16,7 @@ export function useLogin() {
return data;
},
enabled: !user,
});
return { user, ...query };

View file

@ -1,11 +1,13 @@
import useStore, { setUser } from 'store/app';
import useApi from './useApi';
const selector = (state: { user: any }) => state.user;
export function useUser() {
const user = useStore(selector);
return { user, setUser };
export function useUser(userId: string, options?: { [key: string]: any }) {
const { get, useQuery } = useApi();
return useQuery({
queryKey: ['users', userId],
queryFn: () => get(`/users/${userId}`),
enabled: !!userId,
...options,
});
}
export default useUser;

View file

@ -0,0 +1,19 @@
import useApi from './useApi';
import useFilterQuery from './useFilterQuery';
import useCache from 'store/cache';
export function useUsers() {
const { get } = useApi();
const modified = useCache((state: any) => state?.users);
return useFilterQuery({
queryKey: ['users', { modified }],
queryFn: (params: any) => {
return get('/admin/users', {
...params,
});
},
});
}
export default useUsers;

View file

@ -1,11 +1,12 @@
import useApi from './useApi';
export function useWebsite(websiteId: string) {
export function useWebsite(websiteId: string, options?: { [key: string]: any }) {
const { get, useQuery } = useApi();
return useQuery({
queryKey: ['websites', websiteId],
queryFn: () => get(`/websites/${websiteId}`),
enabled: !!websiteId,
...options,
});
}

View file

@ -9,7 +9,7 @@ export function useWebsites({ userId, teamId }: { userId?: string; teamId?: stri
return useFilterQuery({
queryKey: ['websites', { userId, teamId, modified }],
queryFn: (params: any) => {
return get(teamId ? `/teams/${teamId}/websites` : '/websites', {
return get(teamId ? `/teams/${teamId}/websites` : `/users/${userId}/websites`, {
...params,
});
},

View file

@ -4,8 +4,8 @@ import { DATE_RANGE_CONFIG, DEFAULT_DATE_RANGE } from 'lib/constants';
import websiteStore, { setWebsiteDateRange } from 'store/websites';
import appStore, { setDateRange } from 'store/app';
import { DateRange } from 'lib/types';
import useLocale from './useLocale';
import { useApi } from 'components/hooks';
import { useLocale } from './useLocale';
import { useApi } from './queries/useApi';
export function useDateRange(websiteId?: string) {
const { get } = useApi();