'use client' import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, } from '@nextui-org/modal' import { Dropdown, DropdownItem, DropdownMenu, DropdownTrigger, } from '@nextui-org/dropdown' import { Button } from '@nextui-org/button' import { Input } from '@nextui-org/input' import { Icon } from '@iconify/react' import { useRouter } from 'next/navigation' import { useContext, useState } from 'react' import { BookmarkContext, EditBookmarkContext } from '@/app/providers' import { ChevronDownIcon } from './ChevronDownIcon' export default function EditBookmarkForm() { const { isEditBookmark, onIsEditBookmarkChange } = useContext(EditBookmarkContext) const { bookmark, setBookmark } = useContext(BookmarkContext) const router = useRouter() const onSubmit = async () => { const body = { ...bookmark, category_id: selectedKey === 'Other' ? 2 : 1, } await fetch('/api/bookmark', { method: 'PATCH', body: JSON.stringify(body), }) onIsEditBookmarkChange() router.refresh() } const [selectedKey, setSelectedKey] = useState( bookmark.category_id == 2 ? 'Other' : 'Coding' ) return ( <> { if (e.key === 'Enter') onSubmit() }}> {(onClose) => ( <> Edit Bookmark Select Category { setSelectedKey('Coding') }} className='capitalize'> Coding { setSelectedKey('Other') }} className='capitalize'> Other { setBookmark({ ...bookmark, name: event.target.value, }) }} /> { setBookmark({ ...bookmark, url: event.target.value, }) }} /> )} ) }