add negative prompt

This commit is contained in:
Qing
2022-11-08 21:58:48 +08:00
parent b7d504cba6
commit 8c2904c9c8
13 changed files with 176 additions and 8 deletions

View File

@@ -1,5 +1,4 @@
import React, { FocusEvent, InputHTMLAttributes, RefObject } from 'react'
import { useClickAway } from 'react-use'
import { useRecoilState } from 'recoil'
import { appState } from '../../store/Atoms'

View File

@@ -0,0 +1,45 @@
import React, { FocusEvent, TextareaHTMLAttributes } from 'react'
import { useRecoilState } from 'recoil'
import { appState } from '../../store/Atoms'
const TextAreaInput = React.forwardRef<
HTMLTextAreaElement,
TextareaHTMLAttributes<HTMLTextAreaElement>
>((props, ref) => {
const { onFocus, onBlur, ...itemProps } = props
const [_, setAppState] = useRecoilState(appState)
const handleOnFocus = (evt: FocusEvent<any>) => {
setAppState(old => {
return { ...old, disableShortCuts: true }
})
onFocus?.(evt)
}
const handleOnBlur = (evt: FocusEvent<any>) => {
setAppState(old => {
return { ...old, disableShortCuts: false }
})
onBlur?.(evt)
}
return (
<textarea
{...itemProps}
ref={ref}
onFocus={handleOnFocus}
onBlur={handleOnBlur}
onPaste={evt => evt.stopPropagation()}
onKeyDown={e => {
if (e.key === 'Escape') {
e.currentTarget.blur()
}
if ((e.ctrlKey || e.metaKey) && e.key === 'z') {
e.stopPropagation()
}
}}
/>
)
})
export default TextAreaInput