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.
- package/package.json +1 -1
- package/template-react-vite-muijoy/src/App.tsx +1 -1
- package/template-react-vite-muijoy/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy/src/screens/settings/FullScreenSettings.tsx +21 -8
- package/template-react-vite-muijoy/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy/src/utilities/save-utility.ts +2 -0
- package/template-react-vite-muijoy-ink/src/App.tsx +1 -1
- package/template-react-vite-muijoy-ink/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy-ink/src/screens/settings/FullScreenSettings.tsx +21 -8
- package/template-react-vite-muijoy-ink/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy-ink/src/utilities/save-utility.ts +2 -0
- package/template-react-vite-muijoy-ink-tauri/src/App.tsx +1 -1
- package/template-react-vite-muijoy-ink-tauri/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/FullScreenSettings.tsx +21 -8
- package/template-react-vite-muijoy-ink-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy-ink-tauri/src/utilities/save-utility.ts +2 -0
- package/template-react-vite-muijoy-tauri/src/App.tsx +1 -1
- package/template-react-vite-muijoy-tauri/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy-tauri/src/screens/settings/FullScreenSettings.tsx +21 -8
- package/template-react-vite-muijoy-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy-tauri/src/utilities/save-utility.ts +2 -0
package/package.json
CHANGED
|
@@ -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",
|
|
14
|
-
await addRefreshSave()
|
|
15
|
-
});
|
|
13
|
+
window.addEventListener("beforeunload", addRefreshSave);
|
|
16
14
|
|
|
17
15
|
return () => {
|
|
18
|
-
window.removeEventListener("beforeunload",
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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={
|
|
44
|
+
startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
|
|
32
45
|
>
|
|
33
|
-
{
|
|
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")
|
|
@@ -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",
|
|
14
|
-
await addRefreshSave()
|
|
15
|
-
});
|
|
13
|
+
window.addEventListener("beforeunload", addRefreshSave);
|
|
16
14
|
|
|
17
15
|
return () => {
|
|
18
|
-
window.removeEventListener("beforeunload",
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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={
|
|
44
|
+
startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
|
|
32
45
|
>
|
|
33
|
-
{
|
|
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")
|
|
@@ -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",
|
|
14
|
-
await addRefreshSave()
|
|
15
|
-
});
|
|
13
|
+
window.addEventListener("beforeunload", addRefreshSave);
|
|
16
14
|
|
|
17
15
|
return () => {
|
|
18
|
-
window.removeEventListener("beforeunload",
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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={
|
|
44
|
+
startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
|
|
32
45
|
>
|
|
33
|
-
{
|
|
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")
|
|
@@ -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",
|
|
14
|
-
await addRefreshSave()
|
|
15
|
-
});
|
|
13
|
+
window.addEventListener("beforeunload", addRefreshSave);
|
|
16
14
|
|
|
17
15
|
return () => {
|
|
18
|
-
window.removeEventListener("beforeunload",
|
|
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
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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={
|
|
44
|
+
startDecorator={isFullScreenMode ? <FullscreenExitIcon /> : <FullscreenIcon />}
|
|
32
45
|
>
|
|
33
|
-
{
|
|
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")
|