Better selection + only set the prefered once for a new user

This commit is contained in:
loucass003
2025-12-11 09:29:50 +01:00
parent 4b0a2d27d0
commit c4acf4cc41
4 changed files with 14 additions and 21 deletions

View File

@@ -105,7 +105,7 @@ export function BodyAssignment({
onlyAssigned = false,
dotSize,
}: {
assignMode: AssignMode;
assignMode: AssignMode | null;
mirror: boolean;
onlyAssigned?: boolean;
rolesWithErrors?: Partial<Record<BodyPart, BodyPartError>>;
@@ -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]
);

View File

@@ -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 (
<Dropdown

View File

@@ -354,7 +354,7 @@ export function TrackersAssignPage() {
onlyAssigned={false}
highlightedRoles={firstError?.affectedRoles || []}
rolesWithErrors={rolesWithErrors}
assignMode={config?.assignMode ?? defaultConfig.assignMode}
assignMode={config?.assignMode ?? null}
mirror={mirrorView}
onRoleSelected={tryOpenChokerWarning}
/>

View File

@@ -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,