diff --git a/.storybook/main.ts b/.storybook/main.ts index 62192c92..66d909b4 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -13,6 +13,13 @@ const config: StorybookConfig = { name: '@storybook/nextjs-vite', options: {}, }, - staticDirs: ['..\\public'], + // staticDirs: ['../public'], + async viteFinal(config, { configType }) { + if (configType === 'PRODUCTION') { + config.base = '/storybook/'; + } + return config; + }, }; + export default config; diff --git a/package.json b/package.json index 28c357ce..ccb7b0fd 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "scripts": { "dev": "next dev --turbopack", - "build": "next build", + "build": "next build && storybook build -o public/storybook", "start": "next start", "lint": "next lint", "type-check": "tsc --noEmit", diff --git a/src/app/storybook/page.tsx b/src/app/storybook/page.tsx new file mode 100644 index 00000000..430b95d4 --- /dev/null +++ b/src/app/storybook/page.tsx @@ -0,0 +1,12 @@ +'use client'; + +import { useRouter } from 'next/navigation'; +import { useEffect } from 'react'; + +export default function StorybookRedirect() { + const router = useRouter(); + useEffect(() => { + router.replace('/storybook/index.html'); + }, []); + return null; +} diff --git a/src/domain/Activity/components/detail/activity-summary/ActivityDropdown.tsx b/src/domain/Activity/components/detail/activity-summary/ActivityDropdown.tsx index a2b00ff1..796052bd 100644 --- a/src/domain/Activity/components/detail/activity-summary/ActivityDropdown.tsx +++ b/src/domain/Activity/components/detail/activity-summary/ActivityDropdown.tsx @@ -57,6 +57,7 @@ export default function ActivityDropdown({ try { await deleteActivity(id); queryClient.invalidateQueries({ queryKey: activitiesKeys.all }); + queryClient.invalidateQueries({ queryKey: ['carousel-activities'] }); router.push('/activities'); } catch (e) { console.error(e); diff --git a/src/domain/Reservation/components/my-activity-card/DeleteMyActivityModal.tsx b/src/domain/Reservation/components/my-activity-card/DeleteMyActivityModal.tsx index 565397f1..b716f2ed 100644 --- a/src/domain/Reservation/components/my-activity-card/DeleteMyActivityModal.tsx +++ b/src/domain/Reservation/components/my-activity-card/DeleteMyActivityModal.tsx @@ -29,6 +29,7 @@ export default function DeleteMyActivityModal({ }, onSettled: () => { queryClient.invalidateQueries({ queryKey: ['my-activities'] }); + queryClient.invalidateQueries({ queryKey: ['carousel-activities'] }); }, }); diff --git a/src/domain/Reservation/components/reservation-calendar/DayCell.tsx b/src/domain/Reservation/components/reservation-calendar/DayCell.tsx index bb1f8903..7ca4d26c 100644 --- a/src/domain/Reservation/components/reservation-calendar/DayCell.tsx +++ b/src/domain/Reservation/components/reservation-calendar/DayCell.tsx @@ -205,7 +205,13 @@ export default function DayCell({ status: 'declined', }), onSuccess: () => { - queryClient.invalidateQueries({ queryKey: ['reservationsBySchedule'] }); + queryClient.invalidateQueries({ + queryKey: [ + 'allReservationsByDate', + selectedActivityId, + day.format('YYYY-MM-DD'), + ], + }); queryClient.invalidateQueries({ queryKey: ['schedules'] }); queryClient.invalidateQueries({ queryKey: ['reservationDashboard'] }); }, diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..afb1d559 --- /dev/null +++ b/vercel.json @@ -0,0 +1,8 @@ +{ + "rewrites": [ + { + "source": "/storybook", + "destination": "/_next/static/storybook/index.html" + } + ] +}