'use client' import { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, useDisclosure, } from '@nextui-org/modal' import { Select, SelectSection, SelectItem } from '@nextui-org/select' import { Selection } from '@nextui-org/react' import { Button } from '@nextui-org/button' import { Input } from '@nextui-org/input' import { Icon } from '@iconify/react' import { useRouter } from 'next/navigation' import { useState } from 'react' import { Tab, Tabs } from '@nextui-org/tabs' import { BookmarkCategory } from '@/types' export default function NewBookmarkForm({ categories, }: { categories: BookmarkCategory[] }) { const { isOpen, onOpen, onOpenChange } = useDisclosure() const router = useRouter() const onSubmit = () => { if (selected === 'bookmark') submitBookmark() else if (selected === 'bookmark_category') submitCategory() else return } const submitBookmark = async () => { if (value === 'all') return const body = { name, link, description, url, category_id: parseInt(value.values().next().value), } await fetch('/api/bookmark', { method: 'POST', body: JSON.stringify(body), }) onOpenChange() router.refresh() } const submitCategory = async () => { const body = { name: categoryName, } await fetch('/api/bookmark_category', { method: 'POST', body: JSON.stringify(body), }) onOpenChange() router.refresh() } const [selected, setSelected] = useState('bookmark') const [name, setName] = useState('') const [link, setLink] = useState('') const [description, setDescription] = useState('') const [url, setUrl] = useState('') const [categoryName, setCategoryName] = useState('') const [value, setValue] = useState(new Set([])) return ( <> {(onClose) => ( <> New Bookmark/Category setSelected(key.toString()) } fullWidth color='primary'>
{ setName(event.target.value) }} /> { setUrl(event.target.value) }} />
{ setCategoryName( event.target.value ) }} />
)}
) }