import {withIronSessionSsr} from "iron-session/next"; import {sessionOptions} from "@/lib/session"; import {Type, User} from "@/interfaces/user"; import Head from "next/head"; import {Avatar} from "primereact/avatar"; import {useEffect, useState} from "react"; import {FilterMatchMode, FilterOperator} from "primereact/api"; import useUsers from "@/hooks/useUsers"; import {DataTable} from "primereact/datatable"; import {Column} from "primereact/column"; import {capitalize} from "lodash"; import {levelCalculator} from "@/resources/level"; import {Dropdown} from "primereact/dropdown"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; if (!user || !user.isVerified) { res.setHeader("location", "/login"); res.statusCode = 302; res.end(); return { props: { user: null, }, }; } return { props: {user: req.session.user}, }; }, sessionOptions); export default function Users({user}: {user: User}) { const {users, isLoading} = useUsers(); const [filters] = useState({ name: {value: null, matchMode: FilterMatchMode.CONTAINS}, type: {value: null, matchMode: FilterMatchMode.EQUALS}, }); const userTypes: Type[] = ["admin", "developer", "owner", "student", "teacher"]; const typeRowFilterTemplate = (options: any) => { return ( options.filterApplyCallback(e.value)} placeholder="Select One" className="p-column-filter" showClear style={{minWidth: "12rem"}} /> ); }; return ( <> EnCoach | Users
levelCalculator(data.experience).currentLevel} /> capitalize(data.type)} />
); }