Add cache back

This commit is contained in:
ajnart
2023-08-01 19:19:27 +09:00
parent 68bd2c06c8
commit 1bb84e3b0f
5 changed files with 101 additions and 42 deletions

View File

@@ -44,8 +44,11 @@
"@nivo/core": "^0.83.0", "@nivo/core": "^0.83.0",
"@nivo/line": "^0.83.0", "@nivo/line": "^0.83.0",
"@prisma/client": "^5.0.0", "@prisma/client": "^5.0.0",
"@react-native-async-storage/async-storage": "^1.18.1",
"@t3-oss/env-nextjs": "^0.6.0", "@t3-oss/env-nextjs": "^0.6.0",
"@tabler/icons-react": "^2.18.0", "@tabler/icons-react": "^2.18.0",
"@tanstack/query-async-storage-persister": "^4.27.1",
"@tanstack/query-sync-storage-persister": "^4.27.1",
"@tanstack/react-query": "^4.2.1", "@tanstack/react-query": "^4.2.1",
"@tanstack/react-query-devtools": "^4.24.4", "@tanstack/react-query-devtools": "^4.24.4",
"@tanstack/react-query-persist-client": "^4.28.0", "@tanstack/react-query-persist-client": "^4.28.0",

View File

@@ -1,7 +1,10 @@
import { ColorScheme as MantineColorScheme, MantineProvider, MantineTheme } from '@mantine/core'; import { ColorScheme as MantineColorScheme, MantineProvider, MantineTheme } from '@mantine/core';
import { ModalsProvider } from '@mantine/modals'; import { ModalsProvider } from '@mantine/modals';
import { Notifications } from '@mantine/notifications'; import { Notifications } from '@mantine/notifications';
import AsyncStorage from '@react-native-async-storage/async-storage';
import { createAsyncStoragePersister } from '@tanstack/query-async-storage-persister';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client';
import Consola from 'consola'; import Consola from 'consola';
import { getCookie, setCookie } from 'cookies-next'; import { getCookie, setCookie } from 'cookies-next';
import 'flag-icons/css/flag-icons.min.css'; import 'flag-icons/css/flag-icons.min.css';
@@ -16,6 +19,7 @@ import 'video.js/dist/video-js.css';
import { env } from '~/env.js'; import { env } from '~/env.js';
import { ColorSchemeProvider } from '~/hooks/use-colorscheme'; import { ColorSchemeProvider } from '~/hooks/use-colorscheme';
import { modals } from '~/modals/modals'; import { modals } from '~/modals/modals';
import { queryClient } from '~/tools/server/configurations/tanstack/queryClient.tool';
import { ConfigType } from '~/types/config'; import { ConfigType } from '~/types/config';
import { api } from '~/utils/api'; import { api } from '~/utils/api';
import { colorSchemeParser } from '~/validations/user'; import { colorSchemeParser } from '~/validations/user';
@@ -65,6 +69,10 @@ function App(
const { setInitialPackageAttributes } = usePackageAttributesStore(); const { setInitialPackageAttributes } = usePackageAttributesStore();
const asyncStoragePersister = createAsyncStoragePersister({
storage: AsyncStorage,
});
useEffect(() => { useEffect(() => {
setInitialPackageAttributes(props.pageProps.packageAttributes); setInitialPackageAttributes(props.pageProps.packageAttributes);
}, []); }, []);
@@ -75,44 +83,49 @@ function App(
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
</Head> </Head>
<SessionProvider session={pageProps.session}> <SessionProvider session={pageProps.session}>
<ColorSchemeProvider {...pageProps}> <PersistQueryClientProvider
{(colorScheme) => ( client={queryClient}
<ColorTheme.Provider value={colorTheme}> persistOptions={{ persister: asyncStoragePersister }}
<MantineProvider >
theme={{ <ColorSchemeProvider {...pageProps}>
...theme, {(colorScheme) => (
components: { <ColorTheme.Provider value={colorTheme}>
Checkbox: { <MantineProvider
styles: { theme={{
input: { cursor: 'pointer' }, ...theme,
label: { cursor: 'pointer' }, components: {
Checkbox: {
styles: {
input: { cursor: 'pointer' },
label: { cursor: 'pointer' },
},
},
Switch: {
styles: {
input: { cursor: 'pointer' },
label: { cursor: 'pointer' },
},
}, },
}, },
Switch: { primaryColor,
styles: { primaryShade,
input: { cursor: 'pointer' }, colorScheme,
label: { cursor: 'pointer' }, }}
}, withGlobalStyles
}, withNormalizeCSS
}, >
primaryColor, <ConfigProvider {...props.pageProps}>
primaryShade, <Notifications limit={4} position="bottom-left" />
colorScheme, <ModalsProvider modals={modals}>
}} <Component {...pageProps} />
withGlobalStyles </ModalsProvider>
withNormalizeCSS </ConfigProvider>
> </MantineProvider>
<ConfigProvider {...props.pageProps}> </ColorTheme.Provider>
<Notifications limit={4} position="bottom-left" /> )}
<ModalsProvider modals={modals}> </ColorSchemeProvider>
<Component {...pageProps} /> <ReactQueryDevtools initialIsOpen={false} />
</ModalsProvider> </PersistQueryClientProvider>
</ConfigProvider>
</MantineProvider>
</ColorTheme.Provider>
)}
</ColorSchemeProvider>
<ReactQueryDevtools initialIsOpen={false} />
</SessionProvider> </SessionProvider>
</> </>
); );

View File

@@ -22,12 +22,6 @@ import { api } from '~/utils/api';
const BoardsPage = () => { const BoardsPage = () => {
const { data } = api.config.all.useQuery(); const { data } = api.config.all.useQuery();
const context = api.useContext();
const { mutateAsync: deletionMutationAsync } = api.config.delete.useMutation({
onSettled: () => {
void context.config.all.invalidate();
},
});
const [deletingDashboards, { append, filter }] = useListState<string>([]); const [deletingDashboards, { append, filter }] = useListState<string>([]);

View File

@@ -93,6 +93,7 @@ const SettingsComponent = ({
<Select <Select
label={t('localization.firstDayOfWeek.label')} label={t('localization.firstDayOfWeek.label')}
//TODO: Make it use the configured value
data={[ data={[
{ value: 'monday', label: 'Monday' }, { value: 'monday', label: 'Monday' },
{ value: 'sunday', label: 'Sunday' }, { value: 'sunday', label: 'Sunday' },

View File

@@ -1657,6 +1657,17 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@react-native-async-storage/async-storage@npm:^1.18.1":
version: 1.19.1
resolution: "@react-native-async-storage/async-storage@npm:1.19.1"
dependencies:
merge-options: ^3.0.4
peerDependencies:
react-native: ^0.0.0-0 || 0.60 - 0.72 || 1000.0.0
checksum: 7367210e16f788999ca8ff96bd04bbd345f44c186cec7c50903d55637f572c73b8a79f9c948a549329ad489c08d77dd49367971691ed54dbc3839285e0194431
languageName: node
linkType: hard
"@react-spring/animated@npm:~9.7.3": "@react-spring/animated@npm:~9.7.3":
version: 9.7.3 version: 9.7.3
resolution: "@react-spring/animated@npm:9.7.3" resolution: "@react-spring/animated@npm:9.7.3"
@@ -1820,6 +1831,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@tanstack/query-async-storage-persister@npm:^4.27.1":
version: 4.32.0
resolution: "@tanstack/query-async-storage-persister@npm:4.32.0"
dependencies:
"@tanstack/query-persist-client-core": 4.32.0
checksum: 21151138fed9620c5752e226d368cfe09cb928102d664f2c2e423ab7ba4c2f61ea9b56b91dfdf1fb50577da2c3c220c4c1e1f6198e5b3b440813fb66eca3ed74
languageName: node
linkType: hard
"@tanstack/query-core@npm:4.32.0": "@tanstack/query-core@npm:4.32.0":
version: 4.32.0 version: 4.32.0
resolution: "@tanstack/query-core@npm:4.32.0" resolution: "@tanstack/query-core@npm:4.32.0"
@@ -1836,6 +1856,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@tanstack/query-sync-storage-persister@npm:^4.27.1":
version: 4.32.0
resolution: "@tanstack/query-sync-storage-persister@npm:4.32.0"
dependencies:
"@tanstack/query-persist-client-core": 4.32.0
checksum: 752f884c9525d58cb531fcfdf37938a4eb8aea8f613e5f45f572cf4c4f3c2f25fc9b2b4f3dedffa1cad704e32d570f0617c4d67e9c6fa750281f6c3caeb72430
languageName: node
linkType: hard
"@tanstack/react-query-devtools@npm:^4.24.4": "@tanstack/react-query-devtools@npm:^4.24.4":
version: 4.32.0 version: 4.32.0
resolution: "@tanstack/react-query-devtools@npm:4.32.0" resolution: "@tanstack/react-query-devtools@npm:4.32.0"
@@ -5816,8 +5845,11 @@ __metadata:
"@nivo/core": ^0.83.0 "@nivo/core": ^0.83.0
"@nivo/line": ^0.83.0 "@nivo/line": ^0.83.0
"@prisma/client": ^5.0.0 "@prisma/client": ^5.0.0
"@react-native-async-storage/async-storage": ^1.18.1
"@t3-oss/env-nextjs": ^0.6.0 "@t3-oss/env-nextjs": ^0.6.0
"@tabler/icons-react": ^2.18.0 "@tabler/icons-react": ^2.18.0
"@tanstack/query-async-storage-persister": ^4.27.1
"@tanstack/query-sync-storage-persister": ^4.27.1
"@tanstack/react-query": ^4.2.1 "@tanstack/react-query": ^4.2.1
"@tanstack/react-query-devtools": ^4.24.4 "@tanstack/react-query-devtools": ^4.24.4
"@tanstack/react-query-persist-client": ^4.28.0 "@tanstack/react-query-persist-client": ^4.28.0
@@ -6357,6 +6389,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"is-plain-obj@npm:^2.1.0":
version: 2.1.0
resolution: "is-plain-obj@npm:2.1.0"
checksum: cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa
languageName: node
linkType: hard
"is-regex@npm:^1.1.4": "is-regex@npm:^1.1.4":
version: 1.1.4 version: 1.1.4
resolution: "is-regex@npm:1.1.4" resolution: "is-regex@npm:1.1.4"
@@ -6964,6 +7003,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"merge-options@npm:^3.0.4":
version: 3.0.4
resolution: "merge-options@npm:3.0.4"
dependencies:
is-plain-obj: ^2.1.0
checksum: d86ddb3dd6e85d558dbf25dc944f3527b6bacb944db3fdda6e84a3f59c4e4b85231095f58b835758b9a57708342dee0f8de0dffa352974a48221487fe9f4584f
languageName: node
linkType: hard
"merge-stream@npm:^2.0.0": "merge-stream@npm:^2.0.0":
version: 2.0.0 version: 2.0.0
resolution: "merge-stream@npm:2.0.0" resolution: "merge-stream@npm:2.0.0"