Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
OpenPets Dev
53b8435d89 feat(settings): reintroduce abbreviated pet scale preset dropdown 2026-06-14 02:46:51 +00:00
3 changed files with 28 additions and 13 deletions

View file

@ -3,11 +3,12 @@ export interface OnboardingPreferenceLike {
}
export const petScaleOptions = [
{ label: "XXXS", value: 0.16 },
{ label: "XXS", value: 0.24 },
{ label: "XS", value: 0.32 },
{ label: "Small", value: 0.44 },
{ label: "Medium", value: 0.56 },
{ label: "Large", value: 0.72 },
{ label: "S", value: 0.44 },
{ label: "M", value: 0.56 },
{ label: "L", value: 0.72 },
{ label: "XL", value: 0.88 },
{ label: "XXL", value: 1.04 },
{ label: "XXXL", value: 1.20 },

View file

@ -1367,18 +1367,32 @@ function SettingsView({ onThemeModeChange }: { onThemeModeChange: (mode: ThemeMo
<strong>{t("settings.general.petScale.title")}</strong>
<small>{t("settings.general.petScale.description")}</small>
</div>
<div className="flex items-center gap-3 min-w-[180px]">
<input
className="settings-slider"
type="range"
min={0.16}
max={10}
step={0.01}
<div className="flex flex-col items-stretch gap-2 min-w-[180px]">
<select
className="settings-select"
value={settings?.preferences.petScale ?? 0.56}
disabled={!settings || !!busy}
onChange={(event) => patchPreferences({ petScale: Number(event.target.value) }, t("settings.toast.petScaleSaved"))}
/>
<span className="text-sm font-semibold text-navy w-16 text-right tabular-nums">{(settings?.preferences.petScale ?? 0.56).toFixed(2)}x</span>
>
{(settings?.petScaleOptions ?? []).map((option) => (
<option key={option.value} value={option.value} title={`Pet scale: ${option.label}`}>
{option.label}
</option>
))}
</select>
<div className="flex items-center gap-3">
<input
className="settings-slider"
type="range"
min={0.16}
max={10}
step={0.01}
value={settings?.preferences.petScale ?? 0.56}
disabled={!settings || !!busy}
onChange={(event) => patchPreferences({ petScale: Number(event.target.value) }, t("settings.toast.petScaleSaved"))}
/>
<span className="text-sm font-semibold text-navy w-16 text-right tabular-nums">{(settings?.preferences.petScale ?? 0.56).toFixed(2)}x</span>
</div>
</div>
</div>
<div className="settings-row">

View file

@ -40,7 +40,7 @@ assert.equal(preferencePatch.openDefaultPetOnLaunch, true);
assert.equal(preferencePatch.speechBubblesEnabled, true);
assert.equal(defaultPetScale, 0.56);
assert.deepEqual(petScaleOptions.map((option) => option.value), [0.24, 0.32, 0.44, 0.56, 0.72, 0.88, 1.04, 1.2]);
assert.deepEqual(petScaleOptions.map((option) => option.value), [0.16, 0.24, 0.32, 0.44, 0.56, 0.72, 0.88, 1.04, 1.2]);
assert.equal(normalizePetScale(0.24), 0.24);
assert.equal(normalizePetScale(0.56), 0.56);
assert.equal(normalizePetScale(1.2), 1.2);