Compare commits
1 commit
main
...
feat/scale
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
53b8435d89 |
3 changed files with 28 additions and 13 deletions
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue