-
-
-
-
-
-
- WARNING
-
-
-
-
-
-
+
-
-
-
- {l10n.getString(
- 'settings-general-fk_settings-self_localization-title'
- )}
-
-
- {l10n.getString(
- 'settings-general-fk_settings-self_localization-description'
- )}
-
-
-
-
-
>
)}
+
+
+ {l10n.getString(
+ 'settings-general-fk_settings-self_localization-title'
+ )}
+
+
+ {l10n.getString(
+ 'settings-general-fk_settings-self_localization-description'
+ )}
+
+
+
+
+
>
diff --git a/gui/src/hooks/onboarding.ts b/gui/src/hooks/onboarding.ts
index 0ee82895fd..ca84190f1a 100644
--- a/gui/src/hooks/onboarding.ts
+++ b/gui/src/hooks/onboarding.ts
@@ -1,4 +1,11 @@
-import { createContext, Reducer, useContext, useLayoutEffect, useReducer } from 'react';
+import {
+ createContext,
+ Reducer,
+ useContext,
+ useLayoutEffect,
+ useReducer,
+ useState,
+} from 'react';
import { useLocation } from 'react-router-dom';
import { useConfig } from './config';
@@ -15,9 +22,19 @@ interface OnboardingState {
export interface OnboardingContext {
state: OnboardingState;
+ slimeSet: 'butterfly' | 'regular-slime' | 'dongle-slime' | 'wifi-slime' | undefined;
+ usage: 'vrchat' | 'mocap' | 'vtubing' | undefined;
+ update: true | false | undefined;
+ runtime: 'steamvr' | 'standalone' | undefined;
+ mocapPos: 'forehead' | 'face' | undefined;
applyProgress: (value: number) => void;
setWifiCredentials: (ssid: string, password?: string) => void;
skipSetup: () => void;
+ setSlimeSet: React.Dispatch
>;
+ setUsage: React.Dispatch>;
+ setUpdate: React.Dispatch>;
+ setRuntime: React.Dispatch>;
+ setMocapPos: React.Dispatch>;
}
export function reducer(state: OnboardingState, action: OnboardingAction) {
@@ -44,6 +61,11 @@ export function reducer(state: OnboardingState, action: OnboardingAction) {
export function useProvideOnboarding(): OnboardingContext {
const { setConfig } = useConfig();
+ const [slimeSet, setSlimeSet] = useState(undefined);
+ const [usage, setUsage] = useState(undefined);
+ const [update, setUpdate] = useState(undefined);
+ const [runtime, setRuntime] = useState(undefined);
+ const [mocapPos, setMocapPos] = useState(undefined);
const [state, dispatch] = useReducer>(
reducer,
{
@@ -63,6 +85,11 @@ export function useProvideOnboarding(): OnboardingContext {
return {
state,
+ slimeSet,
+ usage,
+ runtime,
+ mocapPos,
+ update,
applyProgress: (value: number) => {
useLayoutEffect(() => {
dispatch({ type: 'progress', value });
@@ -74,6 +101,11 @@ export function useProvideOnboarding(): OnboardingContext {
skipSetup: () => {
setConfig({ doneOnboarding: true });
},
+ setSlimeSet,
+ setUsage,
+ setUpdate,
+ setRuntime,
+ setMocapPos,
};
}
diff --git a/gui/src/hooks/wifi-form.tsx b/gui/src/hooks/wifi-form.tsx
index 28a24f9426..4feb75cba9 100644
--- a/gui/src/hooks/wifi-form.tsx
+++ b/gui/src/hooks/wifi-form.tsx
@@ -8,7 +8,7 @@ export interface WifiFormData {
password?: string;
}
-export function useWifiForm() {
+export function useWifiForm(nextPage?: string) {
const navigate = useNavigate();
const { state, setWifiCredentials } = useOnboarding();
const { register, reset, handleSubmit, formState, control } =
@@ -28,7 +28,7 @@ export function useWifiForm() {
const submitWifiCreds = (value: WifiFormData) => {
setWifiCredentials(value.ssid, value.password ?? '');
- navigate('/onboarding/connect-trackers', {
+ navigate(nextPage ? nextPage : '/onboarding/connect-trackers', {
state: { alonePage: state.alonePage },
});
};