Skip to content

Commit 86d7d5f

Browse files
authored
Fix tracker set selection (#1668)
2 parents 781f4d4 + 247c063 commit 86d7d5f

File tree

4 files changed

+17
-22
lines changed

4 files changed

+17
-22
lines changed

gui/src/components/onboarding/BodyAssignment.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ export function BodyAssignment({
105105
onlyAssigned = false,
106106
dotSize,
107107
}: {
108-
assignMode: AssignMode;
108+
assignMode: AssignMode | null;
109109
mirror: boolean;
110110
onlyAssigned?: boolean;
111111
rolesWithErrors?: Partial<Record<BodyPart, BodyPartError>>;
@@ -148,8 +148,7 @@ export function BodyAssignment({
148148
const hasBodyPart = useCallback(
149149
(part: BodyPart) =>
150150
COMMONS.includes(part) ||
151-
assignMode === AssignMode.All ||
152-
ASSIGNMENT_MODES[assignMode].includes(part),
151+
(assignMode && ASSIGNMENT_MODES[assignMode].includes(part)),
153152
[assignMode]
154153
);
155154

gui/src/components/onboarding/pages/trackers-assign/TrackerAssignOptions.tsx

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Radio } from '@/components/commons/Radio';
22
import { Typography } from '@/components/commons/Typography';
3-
import { AssignMode, defaultConfig, useConfig } from '@/hooks/config';
3+
import { AssignMode, useConfig } from '@/hooks/config';
44
import { ASSIGNMENT_MODES } from '@/components/onboarding/BodyAssignment';
55
import { useLocalization } from '@fluent/react';
66
import { useForm } from 'react-hook-form';
@@ -61,11 +61,20 @@ export function TrackerAssignOptions({
6161
const connectedIMUTrackers = useAtomValue(connectedIMUTrackersAtom);
6262

6363
const { config, setConfig } = useConfig();
64-
const { control, watch, setValue } = useForm<{
64+
65+
const getPreferredSet = () => {
66+
return (
67+
(Object.entries(ASSIGN_MODE_OPTIONS).find(
68+
([_, count]) => count >= connectedIMUTrackers.length
69+
)?.[0] as AssignMode) ?? AssignMode.All
70+
);
71+
};
72+
73+
const { control, watch } = useForm<{
6574
assignMode: AssignMode;
6675
}>({
6776
defaultValues: {
68-
assignMode: config?.assignMode ?? defaultConfig.assignMode,
77+
assignMode: config?.assignMode || getPreferredSet(),
6978
},
7079
});
7180
const { assignMode } = watch();
@@ -74,19 +83,6 @@ export function TrackerAssignOptions({
7483
setConfig({ assignMode });
7584
}, [assignMode]);
7685

77-
useEffect(() => {
78-
if (connectedIMUTrackers.length <= ASSIGN_MODE_OPTIONS[assignMode]) return;
79-
80-
const selectedAssignMode =
81-
(Object.entries(ASSIGN_MODE_OPTIONS).find(
82-
([_, count]) => count >= connectedIMUTrackers.length
83-
)?.[0] as AssignMode) ?? AssignMode.All;
84-
85-
if (assignMode !== selectedAssignMode) {
86-
setValue('assignMode', selectedAssignMode);
87-
}
88-
}, [connectedIMUTrackers, assignMode]);
89-
9086
if (variant == 'dropdown')
9187
return (
9288
<Dropdown

gui/src/components/onboarding/pages/trackers-assign/TrackerAssignment.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -354,7 +354,7 @@ export function TrackersAssignPage() {
354354
onlyAssigned={false}
355355
highlightedRoles={firstError?.affectedRoles || []}
356356
rolesWithErrors={rolesWithErrors}
357-
assignMode={config?.assignMode ?? defaultConfig.assignMode}
357+
assignMode={config?.assignMode ?? null}
358358
mirror={mirrorView}
359359
onRoleSelected={tryOpenChokerWarning}
360360
/>

gui/src/hooks/config.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export interface Config {
4141
fonts: string[];
4242
useTray: boolean | null;
4343
mirrorView: boolean;
44-
assignMode: AssignMode;
44+
assignMode: AssignMode | null;
4545
discordPresence: boolean;
4646
errorTracking: boolean | null;
4747
decorations: boolean;
@@ -72,7 +72,7 @@ export const defaultConfig: Config = {
7272
fonts: ['poppins'],
7373
useTray: null,
7474
mirrorView: true,
75-
assignMode: AssignMode.Core,
75+
assignMode: null,
7676
discordPresence: false,
7777
errorTracking: null,
7878
decorations: false,

0 commit comments

Comments
 (0)