import React, { FormEvent } from 'react' import { useRecoilState, useRecoilValue } from 'recoil' import * as PopoverPrimitive from '@radix-ui/react-popover' import { useToggle } from 'react-use' import { isInpaintingState, negativePropmtState, propmtState, settingState, } from '../../store/Atoms' import NumberInputSetting from '../Settings/NumberInputSetting' import SettingBlock from '../Settings/SettingBlock' import { Switch, SwitchThumb } from '../shared/Switch' import TextAreaInput from '../shared/Textarea' import emitter, { EVENT_PROMPT } from '../../event' import ImageResizeScale from './ImageResizeScale' const INPUT_WIDTH = 30 const P2PSidePanel = () => { const [open, toggleOpen] = useToggle(true) const [setting, setSettingState] = useRecoilState(settingState) const [negativePrompt, setNegativePrompt] = useRecoilState(negativePropmtState) const isInpainting = useRecoilValue(isInpaintingState) const prompt = useRecoilValue(propmtState) const handleOnInput = (evt: FormEvent) => { evt.preventDefault() evt.stopPropagation() const target = evt.target as HTMLTextAreaElement setNegativePrompt(target.value) } const onKeyUp = (e: React.KeyboardEvent) => { if ( e.key === 'Enter' && (e.ctrlKey || e.metaKey) && prompt.length !== 0 && !isInpainting ) { emitter.emit(EVENT_PROMPT) } } return (
toggleOpen()} > Config { setSettingState(old => { return { ...old, showCroper: value } }) }} > } /> { const val = value.length === 0 ? 0 : parseInt(value, 10) setSettingState(old => { return { ...old, p2pSteps: val } }) }} /> { const val = value.length === 0 ? 0 : parseFloat(value) setSettingState(old => { return { ...old, p2pGuidanceScale: val } }) }} /> { const val = value.length === 0 ? 0 : parseFloat(value) setSettingState(old => { return { ...old, p2pImageGuidanceScale: val } }) }} /> {/* { const val = value.length === 0 ? 0 : parseInt(value, 10) setSettingState(old => { return { ...old, sdMaskBlur: val } }) }} /> */} {/* { setSettingState(old => { return { ...old, sdMatchHistograms: value } }) }} > } /> */} {/* { const sampler = val as SDSampler setSettingState(old => { return { ...old, sdSampler: sampler } }) }} /> } /> */} { const val = value.length === 0 ? 0 : parseInt(value, 10) setSettingState(old => { return { ...old, sdSeed: val } }) }} /> { setSettingState(old => { return { ...old, sdSeedFixed: value } }) }} style={{ marginLeft: '8px' }} >
} /> } /> ) } export default P2PSidePanel