refactor: QueryClientProvider 선언 위치 변경
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { usePathname, useRouter } from "next/navigation";
|
import { usePathname, useRouter } from "next/navigation";
|
||||||
|
import { useQueryClient } from "@tanstack/react-query";
|
||||||
import type { MenuItem } from "@common/components/api";
|
import type { MenuItem } from "@common/components/api";
|
||||||
import { BaseLayout } from "@common/components/ui";
|
import { BaseLayout } from "@common/components/ui";
|
||||||
import { useMenuStore } from "@/shared/lib";
|
import { useMenuStore } from "@/shared/lib";
|
||||||
@@ -13,6 +14,8 @@ export default function WithBaseLayout({
|
|||||||
}) {
|
}) {
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const pathname = usePathname();
|
const pathname = usePathname();
|
||||||
|
const queryClient = useQueryClient();
|
||||||
|
|
||||||
const { setCurrentMenuInfo } = useMenuStore((state) => state);
|
const { setCurrentMenuInfo } = useMenuStore((state) => state);
|
||||||
|
|
||||||
const handleMenuClick = (item: MenuItem) => {
|
const handleMenuClick = (item: MenuItem) => {
|
||||||
@@ -21,7 +24,11 @@ export default function WithBaseLayout({
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BaseLayout currentPath={pathname ?? ""} handleMenuClick={handleMenuClick}>
|
<BaseLayout
|
||||||
|
queryClient={queryClient}
|
||||||
|
currentPath={pathname ?? ""}
|
||||||
|
handleMenuClick={handleMenuClick}
|
||||||
|
>
|
||||||
<PageLayout>{children}</PageLayout>
|
<PageLayout>{children}</PageLayout>
|
||||||
</BaseLayout>
|
</BaseLayout>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
||||||
import { ConfirmProvider } from "@frontend-opensource/use-react-hooks";
|
import { ConfirmProvider } from "@frontend-opensource/use-react-hooks";
|
||||||
import { AuthWrapper } from "@/entities/auth";
|
import { AuthWrapper } from "@/entities/auth";
|
||||||
import { MenuWrapper } from "@/entities/menu";
|
import { MenuWrapper } from "@/entities/menu";
|
||||||
@@ -7,15 +8,18 @@ import { StoreProvider } from "@/shared/providers";
|
|||||||
import { AlertDialog } from "@/shared/ui/alert-dialog";
|
import { AlertDialog } from "@/shared/ui/alert-dialog";
|
||||||
|
|
||||||
const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => {
|
const AppProvider = ({ children }: Readonly<{ children: React.ReactNode }>) => {
|
||||||
|
const queryClient = new QueryClient();
|
||||||
return (
|
return (
|
||||||
<StoreProvider>
|
<QueryClientProvider client={queryClient}>
|
||||||
<ConfirmProvider>
|
<StoreProvider>
|
||||||
<AuthWrapper>
|
<ConfirmProvider>
|
||||||
<MenuWrapper>{children}</MenuWrapper>
|
<AuthWrapper>
|
||||||
<AlertDialog />
|
<MenuWrapper>{children}</MenuWrapper>
|
||||||
</AuthWrapper>
|
<AlertDialog />
|
||||||
</ConfirmProvider>
|
</AuthWrapper>
|
||||||
</StoreProvider>
|
</ConfirmProvider>
|
||||||
|
</StoreProvider>
|
||||||
|
</QueryClientProvider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -45,12 +45,7 @@ function ModifyPage({ siteId }: { siteId: string }) {
|
|||||||
const { mutateAsync: deleteSite } = useMutation({
|
const { mutateAsync: deleteSite } = useMutation({
|
||||||
mutationFn: () => SiteApi.deleteSite(siteId),
|
mutationFn: () => SiteApi.deleteSite(siteId),
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
alert("삭제되었습니다.", () => {
|
alert("삭제되었습니다.", router.back);
|
||||||
queryClient.invalidateQueries({
|
|
||||||
queryKey: [ENDPOINT.CMS_SERVICE.SITES],
|
|
||||||
});
|
|
||||||
router.back();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,17 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|||||||
|
|
||||||
export function QueryProvider({
|
export function QueryProvider({
|
||||||
children,
|
children,
|
||||||
client,
|
queryClient,
|
||||||
}: {
|
}: {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
client?: QueryClient;
|
queryClient?: QueryClient;
|
||||||
}) {
|
}) {
|
||||||
const queryClient = client ?? new QueryClient();
|
if (!queryClient) {
|
||||||
return (
|
const queryClient = new QueryClient();
|
||||||
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
return (
|
||||||
);
|
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return <>{children}</>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export function BaseLayout({
|
|||||||
handleMenuClick?: (item: MenuItem) => void;
|
handleMenuClick?: (item: MenuItem) => void;
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<QueryProvider client={queryClient}>
|
<QueryProvider queryClient={queryClient}>
|
||||||
<SidebarProvider>
|
<SidebarProvider>
|
||||||
<div className="flex-1">
|
<div className="flex-1">
|
||||||
<Header />
|
<Header />
|
||||||
|
|||||||
Reference in New Issue
Block a user