mirror of
https://github.com/SlimeVR/SlimeVR-Server.git
synced 2026-04-06 02:01:58 +02:00
Better selection + only set the prefered once for a new user
This commit is contained in:
@@ -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]
|
||||
);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}
|
||||
/>
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user