import {Flex, Separator, Text, Table, IconButton, NativeSelect, Button} from "@chakra-ui/react"; import { useMemo } from "react"; import { useForm, useFieldArray } from "react-hook-form"; import { Check, X, PenLine } from 'lucide-react'; import VdapApi from "../../hooks/useVdapApi.js"; import useBuildUrl from "../../hooks/useBuildUrl.js"; export default function WebAdmin() { // TODO: add below api endpoint // const {data: users, isLoading, error} = VdapApi('/api/v2/vdap_web_users'); const users = useMemo(() => [ { "username": "vkuchenik", "firstName": "Venessa", "lastName": "Kuchenik", "permissions": { "ivans": 2, // 2 => requested permission "rs": 0, // 0 => no permissions and not requested }, "team": "Computer Science", "group": "Super User", }, { "username": "amack", "firstName": "Adeiline", "lastName": "Mack", "permissions": { "ivans": 2, // 0 => no permissions and not requested "rs": 2, // 1 => has permission }, "team": "Remote Sensing", "group": "Member", } ], []); const { register, handleSubmit, control, errors, formState: { isDirty } } = useForm({ defaultValues: {users: users} }); const { fields, append, remove } = useFieldArray({ control, name: "users" // Matches the key in defaultValues }) const grant = (user, category) => { // 1. post data via api // 2. fetch the new data via api again to force re-render console.log(user.username, "was granted", category, "permission"); } const deny = (user, category) => { console.log(user.username, "was denied", category, "permission"); } const users_req_ivans = useMemo(() => { return users.filter(user => user.permissions.ivans === 2); }, [users]); const users_req_rs = useMemo(() => { return users.filter(user => user.permissions.rs === 2); }, [users]); const onSubmit = (data, event) => { event.preventDefault(); console.log(data); } return (
) }