import NewUserModal from "@/components/ModalContent/NewUserModal"; import useUserStore from "@/store/admin/users"; import { User as U } from "@prisma/client"; import Link from "next/link"; import { useEffect, useState } from "react"; import { useTranslation } from "next-i18next"; import getServerSideProps from "@/lib/client/getServerSideProps"; import UserListing from "@/components/UserListing"; interface User extends U { subscriptions: { active: boolean; }; } type UserModal = { isOpen: boolean; userId: number | null; }; export default function Admin() { const { t } = useTranslation(); const { users, setUsers } = useUserStore(); const [searchQuery, setSearchQuery] = useState(""); const [filteredUsers, setFilteredUsers] = useState(); const [deleteUserModal, setDeleteUserModal] = useState({ isOpen: false, userId: null, }); const [newUserModal, setNewUserModal] = useState(false); useEffect(() => { setUsers(); }, []); return (

{t("user_administration")}

{ setSearchQuery(e.target.value); if (users) { setFilteredUsers( users.filter((user) => JSON.stringify(user) .toLowerCase() .includes(e.target.value.toLowerCase()) ) ); } }} className="border border-neutral-content bg-base-200 focus:border-primary py-1 rounded-md pl-9 pr-2 w-full max-w-[15rem] md:w-[15rem] md:max-w-full duration-200 outline-none" />
setNewUserModal(true)} className="flex items-center btn btn-accent dark:border-violet-400 text-white btn-sm px-2 aspect-square relative" >
{filteredUsers && filteredUsers.length > 0 && searchQuery !== "" ? ( UserListing(filteredUsers, deleteUserModal, setDeleteUserModal, t) ) : searchQuery !== "" ? (

{t("no_user_found_in_search")}

) : users && users.length > 0 ? ( UserListing(users, deleteUserModal, setDeleteUserModal, t) ) : (

{t("no_users_found")}

)} {newUserModal && ( setNewUserModal(false)} /> )}
); } export { getServerSideProps };