feat: mutate
This commit is contained in:
parent
0c4d745569
commit
20217f6bef
|
|
@ -105,31 +105,6 @@ export const CalendarWeekProvider: FC<{
|
|||
display,
|
||||
});
|
||||
|
||||
const setFiltersWrapper = useCallback(
|
||||
(filters: {
|
||||
currentWeek: number;
|
||||
currentYear: number;
|
||||
currentMonth: number;
|
||||
display: 'week' | 'month';
|
||||
}) => {
|
||||
setFilters(filters);
|
||||
setInternalData([]);
|
||||
window.history.replaceState(
|
||||
null,
|
||||
'',
|
||||
`/launches?${
|
||||
filters.currentWeek
|
||||
? `week=${filters.currentWeek}`
|
||||
: `month=${filters.currentMonth}`
|
||||
}&year=${filters.currentYear}`
|
||||
);
|
||||
setTimeout(() => {
|
||||
mutate('/posts');
|
||||
}, 10);
|
||||
},
|
||||
[filters]
|
||||
);
|
||||
|
||||
const params = useMemo(() => {
|
||||
return new URLSearchParams(
|
||||
filters.currentWeek
|
||||
|
|
@ -158,6 +133,32 @@ export const CalendarWeekProvider: FC<{
|
|||
refreshWhenHidden: false,
|
||||
revalidateOnFocus: false,
|
||||
});
|
||||
|
||||
const setFiltersWrapper = useCallback(
|
||||
(filters: {
|
||||
currentWeek: number;
|
||||
currentYear: number;
|
||||
currentMonth: number;
|
||||
display: 'week' | 'month';
|
||||
}) => {
|
||||
setFilters(filters);
|
||||
setInternalData([]);
|
||||
window.history.replaceState(
|
||||
null,
|
||||
'',
|
||||
`/launches?${
|
||||
filters.currentWeek
|
||||
? `week=${filters.currentWeek}`
|
||||
: `month=${filters.currentMonth}`
|
||||
}&year=${filters.currentYear}`
|
||||
);
|
||||
setTimeout(() => {
|
||||
swr.mutate();
|
||||
}, 10);
|
||||
},
|
||||
[filters, swr.mutate]
|
||||
);
|
||||
|
||||
const { isLoading } = swr;
|
||||
const { posts, comments } = swr?.data || { posts: [], comments: [] };
|
||||
|
||||
|
|
|
|||
|
|
@ -145,17 +145,7 @@ export const MonthView = () => {
|
|||
|
||||
export const Calendar = () => {
|
||||
const { display } = useCalendar();
|
||||
const [firstDisplay, setFirstDisplay] = useState(display);
|
||||
|
||||
useEffect(() => {
|
||||
setTimeout(() => {
|
||||
setFirstDisplay(display);
|
||||
}, 1000);
|
||||
}, [display]);
|
||||
|
||||
if (display !== firstDisplay) {
|
||||
return <></>;
|
||||
}
|
||||
return (
|
||||
<DNDProvider>
|
||||
{display === 'week' ? <WeekView /> : <MonthView />}
|
||||
|
|
|
|||
Loading…
Reference in New Issue