diff --git a/gui/src/components/onboarding/BodyAssignment.tsx b/gui/src/components/onboarding/BodyAssignment.tsx index ceb77b17f..b264d815f 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 08b02dd85..e22bda108 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 e1f64b4e7..68b921d69 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,