From 185deeb74e565326a1dbf94aecda76243545f966 Mon Sep 17 00:00:00 2001 From: djohnson Date: Tue, 16 Apr 2024 01:36:18 +0900 Subject: [PATCH] A1111 General Panel should use the number input --- src/components/form/NumberInput.tsx | 12 ++-- .../panels/general/A1111GeneralPanel.tsx | 68 ++++++++++--------- 2 files changed, 42 insertions(+), 38 deletions(-) diff --git a/src/components/form/NumberInput.tsx b/src/components/form/NumberInput.tsx index e71c9f3..c0fe530 100644 --- a/src/components/form/NumberInput.tsx +++ b/src/components/form/NumberInput.tsx @@ -4,7 +4,7 @@ import { HTMLProps } from 'react' import ChevronDown from '~/icons/ChevronDown' type NumberInputProps = Omit, 'onChange'> & { - value: number + value?: number onChange: (nextValue: number) => void step?: number min?: number @@ -23,8 +23,8 @@ const NumberInput = ({ className = '', ...props }: NumberInputProps) => { - const increaseDisabled = disabled || _.gt(value + step, max) - const decreaseDisabled = disabled || _.lt(value - step, min) + const increaseDisabled = disabled || _.gt((value || 0) + step, max) + const decreaseDisabled = disabled || _.lt((value || 0) - step, min) return (
onChange(e.target.valueAsNumber)} className={'input w-full focus:border-transparent focus:!outline-none ' + className} min={min} @@ -52,7 +52,7 @@ const NumberInput = ({ 'btn btn-square btn-xs rounded-none opacity-70 ' + (increaseDisabled ? 'cursor-not-allowed ' : ' group hover:scale-100 hover:opacity-100') } - onClick={() => onChange(value + step)} + onClick={() => onChange((value || 0) + step)} disabled={increaseDisabled} > @@ -64,7 +64,7 @@ const NumberInput = ({ 'btn btn-square btn-xs rounded-none opacity-70 ' + (decreaseDisabled ? 'cursor-not-allowed ' : ' group hover:scale-100 hover:opacity-100') } - onClick={() => onChange(value - step)} + onClick={() => onChange((value || 0) - step)} disabled={decreaseDisabled} > diff --git a/src/features/settings/panels/general/A1111GeneralPanel.tsx b/src/features/settings/panels/general/A1111GeneralPanel.tsx index cff31fe..b22a6a4 100644 --- a/src/features/settings/panels/general/A1111GeneralPanel.tsx +++ b/src/features/settings/panels/general/A1111GeneralPanel.tsx @@ -2,6 +2,7 @@ import { useEffect } from 'react' import { observer } from 'mobx-react-lite' import { A1111HostInput } from '~/components/HostInput' +import NumberInput from '~/components/form/NumberInput' import { settingStore } from '~/models/SettingStore' @@ -47,7 +48,7 @@ const A1111SizeSelector = observer(() => { <> -
+
{[16, 128, 512, 1028].map(size => ( ))} - settingStore.setA1111Steps(e.target.valueAsNumber)} - placeholder="Steps" - disabled={!a1111Enabled} - /> +
+ +
) @@ -128,10 +128,12 @@ const A1111BatchSizeSelector = observer(() => { <> -
+
{[1, 2, 3, 5, 7, 11].map(count => ( ))} - settingStore.setA1111BatchSize(e.target.valueAsNumber)} - placeholder="Size" - disabled={!a1111Enabled} - /> +
+ +
)