'use client' import { Table, TableHeader, TableColumn, TableBody, TableRow, TableCell, Tooltip, Select, SelectItem, Selection, } from '@nextui-org/react' import { DeleteIcon, EditIcon } from '@/components/icons' import { BookmarkCategory, BookmarkCategoryWithBookmarks } from '@/types' import { useRouter } from 'next/navigation' const columns = [ { name: 'NAME', uid: 'name' }, { name: 'POSITION', uid: 'position' }, { name: 'BOOKMARK COUNT', uid: 'bookmarkcount' }, { name: 'ACTIONS', uid: 'actions' }, ] export default function TableComponent({ bookmarkCategories, }: { bookmarkCategories: BookmarkCategoryWithBookmarks[] }) { const router = useRouter() const deleteCategory = async (id: number) => { if (!confirm('Do you want to delete this category?')) return const body = { bookmarkCategoryId: id, } await fetch('/api/bookmark_category', { method: 'DELETE', body: JSON.stringify(body), }) router.refresh() return } const updateCategory = async ( bookmark_category: BookmarkCategory, position: Selection ) => { if (position === 'all') return const body = { ...bookmark_category, position: parseInt(position.values().next().value), } await fetch('/api/bookmark_category', { method: 'PATCH', body: JSON.stringify(body), }) router.refresh() return } return ( <> {(column) => ( {column.name} )} {(item) => { const { bookmark: _, ...category } = item return ( {item.name} {item.bookmark.length}
deleteCategory(item.id) }>
) }}
) }