From 4b0a2d27d0f7ab00ecbc6de221963435b5e7fb94 Mon Sep 17 00:00:00 2001 From: loucass003 Date: Thu, 11 Dec 2025 09:18:31 +0100 Subject: [PATCH 1/6] Fix tracker set selection --- .../pages/trackers-assign/TrackerAssignOptions.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index 314b292259..08b02dd858 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -75,17 +75,17 @@ export function TrackerAssignOptions({ }, [assignMode]); useEffect(() => { - if (connectedIMUTrackers.length <= ASSIGN_MODE_OPTIONS[assignMode]) return; - - const selectedAssignMode = + const preferedAssignMode = (Object.entries(ASSIGN_MODE_OPTIONS).find( ([_, count]) => count >= connectedIMUTrackers.length )?.[0] as AssignMode) ?? AssignMode.All; - if (assignMode !== selectedAssignMode) { - setValue('assignMode', selectedAssignMode); + if ( + ASSIGN_MODE_OPTIONS[preferedAssignMode] >= ASSIGN_MODE_OPTIONS[assignMode] + ) { + setValue('assignMode', preferedAssignMode); } - }, [connectedIMUTrackers, assignMode]); + }, []); if (variant == 'dropdown') return ( From c4acf4cc412c9d7419db7f3e5ed9acc08283a4af Mon Sep 17 00:00:00 2001 From: loucass003 Date: Thu, 11 Dec 2025 09:29:50 +0100 Subject: [PATCH 2/6] Better selection + only set the prefered once for a new user --- .../components/onboarding/BodyAssignment.tsx | 5 ++-- .../trackers-assign/TrackerAssignOptions.tsx | 24 +++++++------------ .../trackers-assign/TrackerAssignment.tsx | 2 +- gui/src/hooks/config.ts | 4 ++-- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/gui/src/components/onboarding/BodyAssignment.tsx b/gui/src/components/onboarding/BodyAssignment.tsx index ceb77b17fc..b264d815f7 100644 --- a/gui/src/components/onboarding/BodyAssignment.tsx +++ b/gui/src/components/onboarding/BodyAssignment.tsx @@ -105,7 +105,7 @@ export function BodyAssignment({ onlyAssigned = false, dotSize, }: { - assignMode: AssignMode; + assignMode: AssignMode | null; mirror: boolean; onlyAssigned?: boolean; rolesWithErrors?: Partial>; @@ -148,8 +148,7 @@ export function BodyAssignment({ const hasBodyPart = useCallback( (part: BodyPart) => COMMONS.includes(part) || - assignMode === AssignMode.All || - ASSIGNMENT_MODES[assignMode].includes(part), + (assignMode && ASSIGNMENT_MODES[assignMode].includes(part)), [assignMode] ); diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index 08b02dd858..e22bda1087 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -61,11 +61,18 @@ export function TrackerAssignOptions({ const connectedIMUTrackers = useAtomValue(connectedIMUTrackersAtom); const { config, setConfig } = useConfig(); - const { control, watch, setValue } = useForm<{ + + const getPreferedSet = () => { + return (Object.entries(ASSIGN_MODE_OPTIONS).find( + ([_, count]) => count >= connectedIMUTrackers.length + )?.[0] as AssignMode) ?? AssignMode.All + } + + const { control, watch } = useForm<{ assignMode: AssignMode; }>({ defaultValues: { - assignMode: config?.assignMode ?? defaultConfig.assignMode, + assignMode: config?.assignMode || getPreferedSet(), }, }); const { assignMode } = watch(); @@ -74,19 +81,6 @@ export function TrackerAssignOptions({ setConfig({ assignMode }); }, [assignMode]); - useEffect(() => { - const preferedAssignMode = - (Object.entries(ASSIGN_MODE_OPTIONS).find( - ([_, count]) => count >= connectedIMUTrackers.length - )?.[0] as AssignMode) ?? AssignMode.All; - - if ( - ASSIGN_MODE_OPTIONS[preferedAssignMode] >= ASSIGN_MODE_OPTIONS[assignMode] - ) { - setValue('assignMode', preferedAssignMode); - } - }, []); - if (variant == 'dropdown') return ( diff --git a/gui/src/hooks/config.ts b/gui/src/hooks/config.ts index e1f64b4e7c..68b921d691 100644 --- a/gui/src/hooks/config.ts +++ b/gui/src/hooks/config.ts @@ -41,7 +41,7 @@ export interface Config { fonts: string[]; useTray: boolean | null; mirrorView: boolean; - assignMode: AssignMode; + assignMode: AssignMode | null; discordPresence: boolean; errorTracking: boolean | null; decorations: boolean; @@ -72,7 +72,7 @@ export const defaultConfig: Config = { fonts: ['poppins'], useTray: null, mirrorView: true, - assignMode: AssignMode.Core, + assignMode: null, discordPresence: false, errorTracking: null, decorations: false, From 16a2ac84741c5d01ee34c2d0cea2a922cbd87bff Mon Sep 17 00:00:00 2001 From: loucass003 Date: Thu, 11 Dec 2025 09:36:02 +0100 Subject: [PATCH 3/6] Lint --- .../onboarding/pages/trackers-assign/TrackerAssignOptions.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index e22bda1087..65cbae905a 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -1,6 +1,6 @@ import { Radio } from '@/components/commons/Radio'; import { Typography } from '@/components/commons/Typography'; -import { AssignMode, defaultConfig, useConfig } from '@/hooks/config'; +import { AssignMode, useConfig } from '@/hooks/config'; import { ASSIGNMENT_MODES } from '@/components/onboarding/BodyAssignment'; import { useLocalization } from '@fluent/react'; import { useForm } from 'react-hook-form'; From 9a26fc98b84d7c19f45685aee31c89b72b8a9017 Mon Sep 17 00:00:00 2001 From: lucas lelievre Date: Thu, 11 Dec 2025 09:44:28 +0100 Subject: [PATCH 4/6] Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx Co-authored-by: Sapphire --- .../onboarding/pages/trackers-assign/TrackerAssignOptions.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index 65cbae905a..69dce4e542 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -62,7 +62,7 @@ export function TrackerAssignOptions({ const { config, setConfig } = useConfig(); - const getPreferedSet = () => { + const getPreferredSet = () => { return (Object.entries(ASSIGN_MODE_OPTIONS).find( ([_, count]) => count >= connectedIMUTrackers.length )?.[0] as AssignMode) ?? AssignMode.All From ab248287cc761a5082abd64c245b32654e47e192 Mon Sep 17 00:00:00 2001 From: lucas lelievre Date: Thu, 11 Dec 2025 09:44:33 +0100 Subject: [PATCH 5/6] Update gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx Co-authored-by: Sapphire --- .../onboarding/pages/trackers-assign/TrackerAssignOptions.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index 69dce4e542..f33c620c37 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -72,7 +72,7 @@ export function TrackerAssignOptions({ assignMode: AssignMode; }>({ defaultValues: { - assignMode: config?.assignMode || getPreferedSet(), + assignMode: config?.assignMode || getPreferredSet(), }, }); const { assignMode } = watch(); From 247c0637916896a2990d2cb82e73f203b4e529e0 Mon Sep 17 00:00:00 2001 From: loucass003 Date: Thu, 11 Dec 2025 10:11:16 +0100 Subject: [PATCH 6/6] Lint --- .../pages/trackers-assign/TrackerAssignOptions.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx index f33c620c37..6834af5dec 100644 --- a/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx +++ b/gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx @@ -63,10 +63,12 @@ export function TrackerAssignOptions({ const { config, setConfig } = useConfig(); const getPreferredSet = () => { - return (Object.entries(ASSIGN_MODE_OPTIONS).find( + return ( + (Object.entries(ASSIGN_MODE_OPTIONS).find( ([_, count]) => count >= connectedIMUTrackers.length )?.[0] as AssignMode) ?? AssignMode.All - } + ); + }; const { control, watch } = useForm<{ assignMode: AssignMode;