Added the ability for developers to choose what screen they wanna see

This commit is contained in:
Tiago Ribeiro
2024-01-26 16:21:34 +00:00
parent 13401562fb
commit 213bdd0c8f

View File

@@ -30,6 +30,9 @@ import AgentDashboard from "@/dashboards/Agent";
import PaymentDue from "./(status)/PaymentDue";
import {useRouter} from "next/router";
import {PayPalScriptProvider} from "@paypal/react-paypal-js";
import {CorporateUser, Type, userTypes} from "@/interfaces/user";
import Select from "react-select";
import {USER_TYPE_LABELS} from "@/resources/user";
export const getServerSideProps = withIronSessionSsr(({req, res}) => {
const user = req.session.user;
@@ -61,8 +64,9 @@ export const getServerSideProps = withIronSessionSsr(({req, res}) => {
export default function Home({envVariables}: {envVariables: {[key: string]: string}}) {
const [showDiagnostics, setShowDiagnostics] = useState(false);
const [showDemographicInput, setShowDemographicInput] = useState(false);
const [selectedScreen, setSelectedScreen] = useState<Type>("admin");
const {user, mutateUser} = useUser({redirectTo: "/login"});
const {stats} = useStats(user?.id);
const router = useRouter();
useEffect(() => {
@@ -176,7 +180,21 @@ export default function Home({envVariables}: {envVariables: {[key: string]: stri
{user.type === "corporate" && <CorporateDashboard user={user} />}
{user.type === "agent" && <AgentDashboard user={user} />}
{user.type === "admin" && <AdminDashboard user={user} />}
{user.type === "developer" && <TeacherDashboard user={user} />}
{user.type === "developer" && (
<>
<Select
options={userTypes.map((u) => ({value: u, label: USER_TYPE_LABELS[u]}))}
value={{value: selectedScreen, label: USER_TYPE_LABELS[selectedScreen]}}
onChange={(value) => (value ? setSelectedScreen(value.value) : setSelectedScreen("admin"))}
/>
{selectedScreen === "student" && <StudentDashboard user={user} />}
{selectedScreen === "teacher" && <TeacherDashboard user={user} />}
{selectedScreen === "corporate" && <CorporateDashboard user={user as unknown as CorporateUser} />}
{selectedScreen === "agent" && <AgentDashboard user={user} />}
{selectedScreen === "admin" && <AdminDashboard user={user} />}
</>
)}
</Layout>
)}
</>