Commit 010916f1 authored by tom's avatar tom

refactor

parent dc5062ff
...@@ -6,9 +6,13 @@ import useFetch from 'lib/hooks/useFetch'; ...@@ -6,9 +6,13 @@ import useFetch from 'lib/hooks/useFetch';
import buildUrl from './buildUrl'; import buildUrl from './buildUrl';
import type { RESOURCES, ResourcePayload, ResourceError } from './resources'; import type { RESOURCES, ResourcePayload, ResourceError } from './resources';
export default function useApi<R extends keyof typeof RESOURCES>( interface Params<R extends keyof typeof RESOURCES> {
queryOptions?: Omit<UseQueryOptions<unknown, ResourceError, ResourcePayload<R>>, 'queryKey' | 'queryFn'>;
}
export default function useApiQuery<R extends keyof typeof RESOURCES>(
resource: R, resource: R,
queryOptions?: Omit<UseQueryOptions<unknown, ResourceError, ResourcePayload<R>>, 'queryKey' | 'queryFn'>, { queryOptions }: Params<R> = {},
) { ) {
const fetch = useFetch(); const fetch = useFetch();
......
import useApi from 'lib/api/useApi'; import useApiQuery from 'lib/api/useApiQuery';
import * as cookies from 'lib/cookies'; import * as cookies from 'lib/cookies';
export default function useFetchProfileInfo() { export default function useFetchProfileInfo() {
return useApi('user_info', { return useApiQuery('user_info', {
queryOptions: {
refetchOnMount: false, refetchOnMount: false,
enabled: Boolean(cookies.get(cookies.NAMES.API_TOKEN)), enabled: Boolean(cookies.get(cookies.NAMES.API_TOKEN)),
},
}); });
} }
import { Flex } from '@chakra-ui/react'; import { Flex } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import useApi from 'lib/api/useApi'; import useApiQuery from 'lib/api/useApiQuery';
import * as cookies from 'lib/cookies'; import * as cookies from 'lib/cookies';
import AppError from 'ui/shared/AppError/AppError'; import AppError from 'ui/shared/AppError/AppError';
import ErrorBoundary from 'ui/shared/ErrorBoundary'; import ErrorBoundary from 'ui/shared/ErrorBoundary';
...@@ -22,8 +22,10 @@ const Page = ({ ...@@ -22,8 +22,10 @@ const Page = ({
hideMobileHeaderOnScrollDown, hideMobileHeaderOnScrollDown,
isHomePage, isHomePage,
}: Props) => { }: Props) => {
useApi('csrf', { useApiQuery('csrf', {
queryOptions: {
enabled: Boolean(cookies.get(cookies.NAMES.API_TOKEN)), enabled: Boolean(cookies.get(cookies.NAMES.API_TOKEN)),
},
}); });
const renderErrorScreen = React.useCallback(() => { const renderErrorScreen = React.useCallback(() => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment