diff --git a/src/App.tsx b/src/App.tsx index ab78a1b..f9dc1b5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -6,6 +6,7 @@ import { MAIN_MENU, SUB_MENU } from '@constants'; import { useUserQuery } from '@hooks'; import { AppLayout, AuthLayout } from '@layouts'; import { AuthPage, HomePage } from '@pages'; +import { authService } from './services/auth.service'; export default function App() { const navigate: NavigateFunction = useNavigate(); @@ -84,8 +85,7 @@ export default function App() { { type: 'logout-btn', name: SUB_MENU.logout, - onClick() {} - //onClick: () => authService.logout().then(() => getData()) + onClick: () => authService.logout().then(() => refetch()) } ]} /> diff --git a/src/components/common/AppNavigation.tsx b/src/components/common/AppNavigation.tsx index 4e3157d..be3e121 100644 --- a/src/components/common/AppNavigation.tsx +++ b/src/components/common/AppNavigation.tsx @@ -4,10 +4,15 @@ import coin from '@assets/coin.png'; import { AppDrawer, DesktopNavbar, ToggleSidebarBtn, useSidebarMenu } from '@components/common'; import { useCloseForm } from '@components/order/common'; import { ScreenSize } from '@constants'; -import { useScreenSize, useUserQuery, usePrintingRequestQuery, emitEvent } from '@hooks'; +import { + useScreenSize, + useUserQuery, + usePrintingRequestQuery, + useAuthMutation, + emitEvent +} from '@hooks'; import { useMenuBarStore, useOrderWorkflowStore } from '@states'; import { formatFileSize } from '@utils'; -import { useAuthMutation } from '@hooks'; export const AppNavigation: Component<{ mainMenu: RouteMenu; subMenu: RouteMenu }> = ({ mainMenu, @@ -32,9 +37,7 @@ export const AppNavigation: Component<{ mainMenu: RouteMenu; subMenu: RouteMenu () => listFiles?.reduce((totalSize, file) => totalSize + file.fileSize, 0), [listFiles] ); - const handleLogout = () => { - logout.mutateAsync(); - }; + return (
@@ -62,7 +65,7 @@ export const AppNavigation: Component<{ mainMenu: RouteMenu; subMenu: RouteMenu )} coin logout.mutateAsync()} className='w-10 h-10 hidden lg:block lg:opacity-40 lg:ml-6 lg:cursor-pointer' />
diff --git a/src/components/common/SidebarMenu.tsx b/src/components/common/SidebarMenu.tsx index e25a73c..a888d41 100644 --- a/src/components/common/SidebarMenu.tsx +++ b/src/components/common/SidebarMenu.tsx @@ -5,10 +5,8 @@ import logo from '@assets/logobk.png'; import ticklab from '@assets/ticklab.png'; import { ToggleSidebarBtn } from '@components/common'; import { useMenuBarStore } from '@states'; -import { useAuthMutation } from '@hooks'; export function useSidebarMenu() { - const { logout } = useAuthMutation(); const { selectedMenu, setSelectedMenu } = useMenuBarStore(); const ITEM_CLASSNAME = @@ -56,9 +54,6 @@ export function useSidebarMenu() { ); } })} - logout.mutateAsync()}> - Log out - {subMenu.map((menuItem, idx) => { @@ -81,6 +76,12 @@ export function useSidebarMenu() { ); + } else if (menuItem.type === 'logout-btn') { + return ( + + {menuItem.name} + + ); } })} diff --git a/src/components/order/desktop/TopUpWalletDesktop.tsx b/src/components/order/desktop/TopUpWalletDesktop.tsx index f10136c..714d979 100644 --- a/src/components/order/desktop/TopUpWalletDesktop.tsx +++ b/src/components/order/desktop/TopUpWalletDesktop.tsx @@ -1,9 +1,6 @@ import { InformationCircleIcon, BanknotesIcon, WalletIcon } from '@heroicons/react/24/outline'; import { Button, Radio } from '@material-tailwind/react'; import coinImage from '@assets/coin.png'; -import momoImage from '@assets/momo.png'; -import zaloImage from '@assets/zalo.png'; -import VNPayImage from '@assets/VNPay.png'; export const TopUpWalletDestop = () => { const currentBalance = 202; @@ -12,15 +9,15 @@ export const TopUpWalletDestop = () => { const amountLevel = 100000; const methodList = [ { - image: momoImage, + image: coinImage, method: 'Momo' }, { - image: zaloImage, + image: coinImage, method: 'Zalo' }, { - image: VNPayImage, + image: coinImage, method: 'VNPay' } ]; diff --git a/src/hooks/index.ts b/src/hooks/index.ts index cd4cb5b..47b33a9 100644 --- a/src/hooks/index.ts +++ b/src/hooks/index.ts @@ -2,7 +2,7 @@ * @file Automatically generated by barrelsby. */ -export * from './useAuthMutation'; +export * from './useAuthMutation.hook'; export * from './useEvent'; export * from './usePrintingRequestMutation.hook'; export * from './usePrintingRequestQuery.hook'; diff --git a/src/hooks/useAuthMutation.ts b/src/hooks/useAuthMutation.hook.ts similarity index 87% rename from src/hooks/useAuthMutation.ts rename to src/hooks/useAuthMutation.hook.ts index 2995d9e..953b09f 100644 --- a/src/hooks/useAuthMutation.ts +++ b/src/hooks/useAuthMutation.hook.ts @@ -3,13 +3,15 @@ import { authService, userService } from '@services'; export function useAuthMutation() { const queryClient = useQueryClient(); + const logout = useMutation({ mutationKey: ['logout'], mutationFn: () => authService.logout(), onSuccess: () => { queryClient.prefetchQuery({ queryKey: ['/api/user'], - queryFn: () => userService.getInfo() + queryFn: () => userService.getInfo(), + retry: 0 }); } }); diff --git a/src/hooks/usePrintingRequestMutation.hook.ts b/src/hooks/usePrintingRequestMutation.hook.ts index ad55f8b..ef232c9 100644 --- a/src/hooks/usePrintingRequestMutation.hook.ts +++ b/src/hooks/usePrintingRequestMutation.hook.ts @@ -1,5 +1,6 @@ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { printingRequestService, buyCoinService, userService } from '@services'; +import { retryQueryFn } from '@utils'; export function usePrintingRequestMutation() { const queryClient = useQueryClient(); @@ -65,7 +66,8 @@ export function usePrintingRequestMutation() { onSuccess: () => { queryClient.prefetchQuery({ queryKey: ['/api/user/remain-coins'], - queryFn: () => userService.getRemainCoins() + queryFn: () => userService.getRemainCoins(), + retry: retryQueryFn }); } }); diff --git a/src/services/common.ts b/src/services/common.ts index 82bca70..dec736a 100644 --- a/src/services/common.ts +++ b/src/services/common.ts @@ -8,6 +8,6 @@ export const apiClient = createClient({ export async function invoke(call: Promise>) { const { data, error } = await call; - if (data) return data; + if (data !== undefined) return data; throw (error as ResponseError).message; }