"use client"; import { Box, Button, Card, CardBody, Flex, FormControl, FormHelperText, FormLabel, Grid, Heading, Input, Link, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Spacer, Spinner, useDisclosure, VStack, Text, Menu, MenuButton, MenuList, MenuItem, AlertDialog, IconButton, } from "@chakra-ui/react"; import NextLink from "next"; import React, { ReactNode, useState } from "react"; import { Container } from "@chakra-ui/react"; import { PlusSquareIcon } from "@chakra-ui/icons"; import useApi from "../../lib/useApi"; import useRoomList from "./useRoomList"; import { FaEllipsisVertical, FaTrash } from "react-icons/fa6"; import next from "next"; export default function RoomsList() { const { isOpen, onOpen, onClose } = useDisclosure(); const [roomName, setRoomName] = useState(""); const api = useApi(); const [page, setPage] = useState(1); const { loading, response, refetch } = useRoomList(page); const handleAddRoom = async () => { try { const response = await api?.v1RoomsCreate({ requestBody: { name: roomName }, }); setRoomName(""); refetch(); } catch (err) {} onClose(); }; const handleDeleteRoom = async (roomId: string) => { try { const response = await api?.v1RoomsDelete({ roomId, }); refetch(); } catch (err) {} }; const handleRoomNameChange = (e) => { setRoomName(e.target.value); }; if (loading && !response) return ( ); return ( <> Rooms Add Room Room name Please enter room name {response?.items && response.items.length > 0 ? ( response.items.map((room) => ( {room.name} } aria-label="actions" /> handleDeleteRoom(room.id)} icon={} > Delete )) ) : ( No rooms found )} ); }