create-pixi-vn 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/package.json +1 -1
  2. package/template-react-vite-muijoy/src/App.tsx +1 -1
  3. package/template-react-vite-muijoy/src/interceptors/RefreshEventInterceptor.tsx +2 -6
  4. package/template-react-vite-muijoy/src/screens/settings/FullScreenSettings.tsx +21 -8
  5. package/template-react-vite-muijoy/src/use_query/useQueryIsFullModeScreen.ts +12 -0
  6. package/template-react-vite-muijoy/src/utilities/save-utility.ts +2 -0
  7. package/template-react-vite-muijoy-ink/src/App.tsx +1 -1
  8. package/template-react-vite-muijoy-ink/src/interceptors/RefreshEventInterceptor.tsx +2 -6
  9. package/template-react-vite-muijoy-ink/src/screens/settings/FullScreenSettings.tsx +21 -8
  10. package/template-react-vite-muijoy-ink/src/use_query/useQueryIsFullModeScreen.ts +12 -0
  11. package/template-react-vite-muijoy-ink/src/utilities/save-utility.ts +2 -0
  12. package/template-react-vite-muijoy-ink-tauri/src/App.tsx +1 -1
  13. package/template-react-vite-muijoy-ink-tauri/src/interceptors/RefreshEventInterceptor.tsx +2 -6
  14. package/template-react-vite-muijoy-ink-tauri/src/screens/settings/FullScreenSettings.tsx +21 -8
  15. package/template-react-vite-muijoy-ink-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
  16. package/template-react-vite-muijoy-ink-tauri/src/utilities/save-utility.ts +2 -0
  17. package/template-react-vite-muijoy-tauri/src/App.tsx +1 -1
  18. package/template-react-vite-muijoy-tauri/src/interceptors/RefreshEventInterceptor.tsx +2 -6
  19. package/template-react-vite-muijoy-tauri/src/screens/settings/FullScreenSettings.tsx +21 -8
  20. package/template-react-vite-muijoy-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
  21. package/template-react-vite-muijoy-tauri/src/utilities/save-utility.ts +2 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "create-pixi-vn",
3
3
  "description": "Create a new Pixi’VN project",
4
- "version": "1.0.3",
4
+ "version": "1.0.4",
5
5
  "type": "module",
6
6
  "license": "GPL-3.0",
7
7
  "author": "DRincs-Productions",
@@ -9,7 +9,7 @@ export default function App() {
9
9
  initializeIndexedDB(),
10
10
  ])
11
11
  await promileAll
12
- return import('./Home')
12
+ return await import('./Home')
13
13
  })
14
14
 
15
15
  return (
@@ -10,14 +10,10 @@ export default function RefreshSaveEventInterceptor() {
10
10
 
11
11
  useEffect(() => {
12
12
  loadRefreshSave(navigate).then(() => queryClient.invalidateQueries({ queryKey: [INTERFACE_DATA_USE_QUEY_KEY] }))
13
- window.addEventListener("beforeunload", async () => {
14
- await addRefreshSave()
15
- });
13
+ window.addEventListener("beforeunload", addRefreshSave);
16
14
 
17
15
  return () => {
18
- window.removeEventListener("beforeunload", async () => {
19
- await addRefreshSave()
20
- });
16
+ window.removeEventListener("beforeunload", addRefreshSave);
21
17
  };
22
18
  }, []);
23
19
 
@@ -1,13 +1,21 @@
1
1
  import FullscreenIcon from '@mui/icons-material/Fullscreen';
2
2
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
3
3
  import { Box, Button, FormHelperText, FormLabel } from "@mui/joy";
4
+ import { useQueryClient } from '@tanstack/react-query';
4
5
  import { useState } from 'react';
5
6
  import { useTranslation } from 'react-i18next';
7
+ import useQueryIsFullModeScreen, { IS_FULL_SCREEN_MODE_USE_QUEY_KEY } from '../../use_query/useQueryIsFullModeScreen';
6
8
 
7
9
  export default function FullScreenSettings() {
8
- const [fullScreenEnabled, setFullScreenEnabled] = useState(false)
10
+ const { data: isFullScreenMode } = useQueryIsFullModeScreen()
11
+ const [loading, setLoading] = useState(false)
12
+ const queryClient = useQueryClient()
9
13
  const { t } = useTranslation(["ui"]);
10
14
 
15
+ if (document.fullscreenEnabled === false) {
16
+ return null
17
+ }
18
+
11
19
  return (
12
20
  <>
13
21
  <Box>
@@ -19,18 +27,23 @@ export default function FullScreenSettings() {
19
27
  </FormHelperText>
20
28
  </Box>
21
29
  <Button
30
+ loading={loading}
22
31
  onClick={() => {
23
- if (fullScreenEnabled) {
24
- document.exitFullscreen()
25
- setFullScreenEnabled(false)
32
+ setLoading(true)
33
+ let promise: Promise<void>
34
+ if (isFullScreenMode) {
35
+ promise = document.exitFullscreen()
26
36
  } else {
27
- document.documentElement.requestFullscreen()
28
- setFullScreenEnabled(true)
37
+ promise = document.documentElement.requestFullscreen()
29
38
  }
39
+ promise.finally(() => {
40
+ setLoading(false)
41
+ queryClient.invalidateQueries({ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY] })
42
+ })
30
43
  }}
31
- startDecorator={fullScreenEnabled ? <FullscreenExitIcon /> : <FullscreenIcon />}
44
+ startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
32
45
  >
33
- {fullScreenEnabled ? t('exit_fullscreen') : t('enter_fullscreen')}
46
+ {isFullScreenMode ? t('exit_fullscreen') : t('enter_fullscreen')}
34
47
  </Button>
35
48
  </>
36
49
  );
@@ -0,0 +1,12 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+
3
+ export const IS_FULL_SCREEN_MODE_USE_QUEY_KEY = "is_full_screen_mode_use_quey_key";
4
+
5
+ export default function useQueryIsFullModeScreen() {
6
+ return useQuery({
7
+ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY],
8
+ queryFn: () => {
9
+ return document.fullscreenElement !== null;
10
+ },
11
+ });
12
+ }
@@ -111,6 +111,8 @@ export async function loadRefreshSave(navigate: (path: string) => void) {
111
111
  if (jsonString) {
112
112
  navigate("/loading")
113
113
  let data: GameSaveData = JSON.parse(jsonString)
114
+ await new Promise((resolve) => setTimeout(resolve, 1000))
115
+
114
116
  return loadSave(data, navigate)
115
117
  .then(() => {
116
118
  localStorage.removeItem("refreshSave")
@@ -11,7 +11,7 @@ export default function App() {
11
11
  importAllInkLabels(),
12
12
  ])
13
13
  await promileAll
14
- return import('./Home')
14
+ return await import('./Home')
15
15
  })
16
16
 
17
17
  return (
@@ -10,14 +10,10 @@ export default function RefreshSaveEventInterceptor() {
10
10
 
11
11
  useEffect(() => {
12
12
  loadRefreshSave(navigate).then(() => queryClient.invalidateQueries({ queryKey: [INTERFACE_DATA_USE_QUEY_KEY] }))
13
- window.addEventListener("beforeunload", async () => {
14
- await addRefreshSave()
15
- });
13
+ window.addEventListener("beforeunload", addRefreshSave);
16
14
 
17
15
  return () => {
18
- window.removeEventListener("beforeunload", async () => {
19
- await addRefreshSave()
20
- });
16
+ window.removeEventListener("beforeunload", addRefreshSave);
21
17
  };
22
18
  }, []);
23
19
 
@@ -1,13 +1,21 @@
1
1
  import FullscreenIcon from '@mui/icons-material/Fullscreen';
2
2
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
3
3
  import { Box, Button, FormHelperText, FormLabel } from "@mui/joy";
4
+ import { useQueryClient } from '@tanstack/react-query';
4
5
  import { useState } from 'react';
5
6
  import { useTranslation } from 'react-i18next';
7
+ import useQueryIsFullModeScreen, { IS_FULL_SCREEN_MODE_USE_QUEY_KEY } from '../../use_query/useQueryIsFullModeScreen';
6
8
 
7
9
  export default function FullScreenSettings() {
8
- const [fullScreenEnabled, setFullScreenEnabled] = useState(false)
10
+ const { data: isFullScreenMode } = useQueryIsFullModeScreen()
11
+ const [loading, setLoading] = useState(false)
12
+ const queryClient = useQueryClient()
9
13
  const { t } = useTranslation(["ui"]);
10
14
 
15
+ if (document.fullscreenEnabled === false) {
16
+ return null
17
+ }
18
+
11
19
  return (
12
20
  <>
13
21
  <Box>
@@ -19,18 +27,23 @@ export default function FullScreenSettings() {
19
27
  </FormHelperText>
20
28
  </Box>
21
29
  <Button
30
+ loading={loading}
22
31
  onClick={() => {
23
- if (fullScreenEnabled) {
24
- document.exitFullscreen()
25
- setFullScreenEnabled(false)
32
+ setLoading(true)
33
+ let promise: Promise<void>
34
+ if (isFullScreenMode) {
35
+ promise = document.exitFullscreen()
26
36
  } else {
27
- document.documentElement.requestFullscreen()
28
- setFullScreenEnabled(true)
37
+ promise = document.documentElement.requestFullscreen()
29
38
  }
39
+ promise.finally(() => {
40
+ setLoading(false)
41
+ queryClient.invalidateQueries({ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY] })
42
+ })
30
43
  }}
31
- startDecorator={fullScreenEnabled ? <FullscreenExitIcon /> : <FullscreenIcon />}
44
+ startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
32
45
  >
33
- {fullScreenEnabled ? t('exit_fullscreen') : t('enter_fullscreen')}
46
+ {isFullScreenMode ? t('exit_fullscreen') : t('enter_fullscreen')}
34
47
  </Button>
35
48
  </>
36
49
  );
@@ -0,0 +1,12 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+
3
+ export const IS_FULL_SCREEN_MODE_USE_QUEY_KEY = "is_full_screen_mode_use_quey_key";
4
+
5
+ export default function useQueryIsFullModeScreen() {
6
+ return useQuery({
7
+ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY],
8
+ queryFn: () => {
9
+ return document.fullscreenElement !== null;
10
+ },
11
+ });
12
+ }
@@ -111,6 +111,8 @@ export async function loadRefreshSave(navigate: (path: string) => void) {
111
111
  if (jsonString) {
112
112
  navigate("/loading")
113
113
  let data: GameSaveData = JSON.parse(jsonString)
114
+ await new Promise((resolve) => setTimeout(resolve, 1000))
115
+
114
116
  return loadSave(data, navigate)
115
117
  .then(() => {
116
118
  localStorage.removeItem("refreshSave")
@@ -11,7 +11,7 @@ export default function App() {
11
11
  importAllInkLabels(),
12
12
  ])
13
13
  await promileAll
14
- return import('./Home')
14
+ return await import('./Home')
15
15
  })
16
16
 
17
17
  return (
@@ -10,14 +10,10 @@ export default function RefreshSaveEventInterceptor() {
10
10
 
11
11
  useEffect(() => {
12
12
  loadRefreshSave(navigate).then(() => queryClient.invalidateQueries({ queryKey: [INTERFACE_DATA_USE_QUEY_KEY] }))
13
- window.addEventListener("beforeunload", async () => {
14
- await addRefreshSave()
15
- });
13
+ window.addEventListener("beforeunload", addRefreshSave);
16
14
 
17
15
  return () => {
18
- window.removeEventListener("beforeunload", async () => {
19
- await addRefreshSave()
20
- });
16
+ window.removeEventListener("beforeunload", addRefreshSave);
21
17
  };
22
18
  }, []);
23
19
 
@@ -1,13 +1,21 @@
1
1
  import FullscreenIcon from '@mui/icons-material/Fullscreen';
2
2
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
3
3
  import { Box, Button, FormHelperText, FormLabel } from "@mui/joy";
4
+ import { useQueryClient } from '@tanstack/react-query';
4
5
  import { useState } from 'react';
5
6
  import { useTranslation } from 'react-i18next';
7
+ import useQueryIsFullModeScreen, { IS_FULL_SCREEN_MODE_USE_QUEY_KEY } from '../../use_query/useQueryIsFullModeScreen';
6
8
 
7
9
  export default function FullScreenSettings() {
8
- const [fullScreenEnabled, setFullScreenEnabled] = useState(false)
10
+ const { data: isFullScreenMode } = useQueryIsFullModeScreen()
11
+ const [loading, setLoading] = useState(false)
12
+ const queryClient = useQueryClient()
9
13
  const { t } = useTranslation(["ui"]);
10
14
 
15
+ if (document.fullscreenEnabled === false) {
16
+ return null
17
+ }
18
+
11
19
  return (
12
20
  <>
13
21
  <Box>
@@ -19,18 +27,23 @@ export default function FullScreenSettings() {
19
27
  </FormHelperText>
20
28
  </Box>
21
29
  <Button
30
+ loading={loading}
22
31
  onClick={() => {
23
- if (fullScreenEnabled) {
24
- document.exitFullscreen()
25
- setFullScreenEnabled(false)
32
+ setLoading(true)
33
+ let promise: Promise<void>
34
+ if (isFullScreenMode) {
35
+ promise = document.exitFullscreen()
26
36
  } else {
27
- document.documentElement.requestFullscreen()
28
- setFullScreenEnabled(true)
37
+ promise = document.documentElement.requestFullscreen()
29
38
  }
39
+ promise.finally(() => {
40
+ setLoading(false)
41
+ queryClient.invalidateQueries({ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY] })
42
+ })
30
43
  }}
31
- startDecorator={fullScreenEnabled ? <FullscreenExitIcon /> : <FullscreenIcon />}
44
+ startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
32
45
  >
33
- {fullScreenEnabled ? t('exit_fullscreen') : t('enter_fullscreen')}
46
+ {isFullScreenMode ? t('exit_fullscreen') : t('enter_fullscreen')}
34
47
  </Button>
35
48
  </>
36
49
  );
@@ -0,0 +1,12 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+
3
+ export const IS_FULL_SCREEN_MODE_USE_QUEY_KEY = "is_full_screen_mode_use_quey_key";
4
+
5
+ export default function useQueryIsFullModeScreen() {
6
+ return useQuery({
7
+ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY],
8
+ queryFn: () => {
9
+ return document.fullscreenElement !== null;
10
+ },
11
+ });
12
+ }
@@ -111,6 +111,8 @@ export async function loadRefreshSave(navigate: (path: string) => void) {
111
111
  if (jsonString) {
112
112
  navigate("/loading")
113
113
  let data: GameSaveData = JSON.parse(jsonString)
114
+ await new Promise((resolve) => setTimeout(resolve, 1000))
115
+
114
116
  return loadSave(data, navigate)
115
117
  .then(() => {
116
118
  localStorage.removeItem("refreshSave")
@@ -9,7 +9,7 @@ export default function App() {
9
9
  initializeIndexedDB(),
10
10
  ])
11
11
  await promileAll
12
- return import('./Home')
12
+ return await import('./Home')
13
13
  })
14
14
 
15
15
  return (
@@ -10,14 +10,10 @@ export default function RefreshSaveEventInterceptor() {
10
10
 
11
11
  useEffect(() => {
12
12
  loadRefreshSave(navigate).then(() => queryClient.invalidateQueries({ queryKey: [INTERFACE_DATA_USE_QUEY_KEY] }))
13
- window.addEventListener("beforeunload", async () => {
14
- await addRefreshSave()
15
- });
13
+ window.addEventListener("beforeunload", addRefreshSave);
16
14
 
17
15
  return () => {
18
- window.removeEventListener("beforeunload", async () => {
19
- await addRefreshSave()
20
- });
16
+ window.removeEventListener("beforeunload", addRefreshSave);
21
17
  };
22
18
  }, []);
23
19
 
@@ -1,13 +1,21 @@
1
1
  import FullscreenIcon from '@mui/icons-material/Fullscreen';
2
2
  import FullscreenExitIcon from '@mui/icons-material/FullscreenExit';
3
3
  import { Box, Button, FormHelperText, FormLabel } from "@mui/joy";
4
+ import { useQueryClient } from '@tanstack/react-query';
4
5
  import { useState } from 'react';
5
6
  import { useTranslation } from 'react-i18next';
7
+ import useQueryIsFullModeScreen, { IS_FULL_SCREEN_MODE_USE_QUEY_KEY } from '../../use_query/useQueryIsFullModeScreen';
6
8
 
7
9
  export default function FullScreenSettings() {
8
- const [fullScreenEnabled, setFullScreenEnabled] = useState(false)
10
+ const { data: isFullScreenMode } = useQueryIsFullModeScreen()
11
+ const [loading, setLoading] = useState(false)
12
+ const queryClient = useQueryClient()
9
13
  const { t } = useTranslation(["ui"]);
10
14
 
15
+ if (document.fullscreenEnabled === false) {
16
+ return null
17
+ }
18
+
11
19
  return (
12
20
  <>
13
21
  <Box>
@@ -19,18 +27,23 @@ export default function FullScreenSettings() {
19
27
  </FormHelperText>
20
28
  </Box>
21
29
  <Button
30
+ loading={loading}
22
31
  onClick={() => {
23
- if (fullScreenEnabled) {
24
- document.exitFullscreen()
25
- setFullScreenEnabled(false)
32
+ setLoading(true)
33
+ let promise: Promise<void>
34
+ if (isFullScreenMode) {
35
+ promise = document.exitFullscreen()
26
36
  } else {
27
- document.documentElement.requestFullscreen()
28
- setFullScreenEnabled(true)
37
+ promise = document.documentElement.requestFullscreen()
29
38
  }
39
+ promise.finally(() => {
40
+ setLoading(false)
41
+ queryClient.invalidateQueries({ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY] })
42
+ })
30
43
  }}
31
- startDecorator={fullScreenEnabled ? <FullscreenExitIcon /> : <FullscreenIcon />}
44
+ startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
32
45
  >
33
- {fullScreenEnabled ? t('exit_fullscreen') : t('enter_fullscreen')}
46
+ {isFullScreenMode ? t('exit_fullscreen') : t('enter_fullscreen')}
34
47
  </Button>
35
48
  </>
36
49
  );
@@ -0,0 +1,12 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+
3
+ export const IS_FULL_SCREEN_MODE_USE_QUEY_KEY = "is_full_screen_mode_use_quey_key";
4
+
5
+ export default function useQueryIsFullModeScreen() {
6
+ return useQuery({
7
+ queryKey: [IS_FULL_SCREEN_MODE_USE_QUEY_KEY],
8
+ queryFn: () => {
9
+ return document.fullscreenElement !== null;
10
+ },
11
+ });
12
+ }
@@ -111,6 +111,8 @@ export async function loadRefreshSave(navigate: (path: string) => void) {
111
111
  if (jsonString) {
112
112
  navigate("/loading")
113
113
  let data: GameSaveData = JSON.parse(jsonString)
114
+ await new Promise((resolve) => setTimeout(resolve, 1000))
115
+
114
116
  return loadSave(data, navigate)
115
117
  .then(() => {
116
118
  localStorage.removeItem("refreshSave")