Merge pull request #6211 from cmppoon/dev
fix: emoji picker remains stuck in the open state in AddEditAssistant component
This commit is contained in:
commit
6c44ec558d
@ -61,15 +61,18 @@ export default function AddEditAssistant({
|
|||||||
const [paramsTypes, setParamsTypes] = useState<string[]>(['string'])
|
const [paramsTypes, setParamsTypes] = useState<string[]>(['string'])
|
||||||
const [showEmojiPicker, setShowEmojiPicker] = useState(false)
|
const [showEmojiPicker, setShowEmojiPicker] = useState(false)
|
||||||
const emojiPickerRef = useRef<HTMLDivElement>(null)
|
const emojiPickerRef = useRef<HTMLDivElement>(null)
|
||||||
|
const emojiPickerTriggerRef = useRef<HTMLDivElement>(null)
|
||||||
const [nameError, setNameError] = useState<string | null>(null)
|
const [nameError, setNameError] = useState<string | null>(null)
|
||||||
const [toolSteps, setToolSteps] = useState(20)
|
const [toolSteps, setToolSteps] = useState(20)
|
||||||
|
|
||||||
// Handle click outside emoji picker
|
// Handle click outside emoji picker or trigger
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleClickOutside = (event: MouseEvent) => {
|
const handleClickOutside = (event: MouseEvent) => {
|
||||||
if (
|
if (
|
||||||
emojiPickerRef.current &&
|
emojiPickerRef.current &&
|
||||||
!emojiPickerRef.current.contains(event.target as Node)
|
emojiPickerTriggerRef.current &&
|
||||||
|
!emojiPickerRef.current.contains(event.target as Node) &&
|
||||||
|
!emojiPickerTriggerRef.current.contains(event.target as Node)
|
||||||
) {
|
) {
|
||||||
setShowEmojiPicker(false)
|
setShowEmojiPicker(false)
|
||||||
}
|
}
|
||||||
@ -91,7 +94,9 @@ export default function AddEditAssistant({
|
|||||||
setName(initialData.name)
|
setName(initialData.name)
|
||||||
setDescription(initialData.description)
|
setDescription(initialData.description)
|
||||||
setInstructions(initialData.instructions)
|
setInstructions(initialData.instructions)
|
||||||
|
setShowEmojiPicker(false)
|
||||||
setToolSteps(initialData.tool_steps ?? 20)
|
setToolSteps(initialData.tool_steps ?? 20)
|
||||||
|
|
||||||
// Convert parameters object to arrays of keys and values
|
// Convert parameters object to arrays of keys and values
|
||||||
const keys = Object.keys(initialData.parameters || {})
|
const keys = Object.keys(initialData.parameters || {})
|
||||||
const values = Object.values(initialData.parameters || {})
|
const values = Object.values(initialData.parameters || {})
|
||||||
@ -122,6 +127,7 @@ export default function AddEditAssistant({
|
|||||||
setParamsValues([''])
|
setParamsValues([''])
|
||||||
setParamsTypes(['string'])
|
setParamsTypes(['string'])
|
||||||
setNameError(null)
|
setNameError(null)
|
||||||
|
setShowEmojiPicker(false)
|
||||||
setToolSteps(20)
|
setToolSteps(20)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,6 +253,7 @@ export default function AddEditAssistant({
|
|||||||
<div
|
<div
|
||||||
className="border rounded-sm p-1 w-9 h-9 flex items-center justify-center border-main-view-fg/10 cursor-pointer"
|
className="border rounded-sm p-1 w-9 h-9 flex items-center justify-center border-main-view-fg/10 cursor-pointer"
|
||||||
onClick={() => setShowEmojiPicker(!showEmojiPicker)}
|
onClick={() => setShowEmojiPicker(!showEmojiPicker)}
|
||||||
|
ref={emojiPickerTriggerRef}
|
||||||
>
|
>
|
||||||
{avatar ? (
|
{avatar ? (
|
||||||
<AvatarEmoji
|
<AvatarEmoji
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user