Allow users to edit others

This commit is contained in:
Tiago Ribeiro
2024-09-02 12:30:23 +01:00
parent 4e3c947d2a
commit b6c3754b40

View File

@@ -1,5 +1,5 @@
import useFilterRecordsByUser from "@/hooks/useFilterRecordsByUser";
import {CorporateInformation, CorporateUser, EMPLOYMENT_STATUS, User, Type, Stat} from "@/interfaces/user";
import {CorporateInformation, CorporateUser, EMPLOYMENT_STATUS, User, Type, Stat, Gender} from "@/interfaces/user";
import {groupBySession, averageScore} from "@/utils/stats";
import {RadioGroup} from "@headlessui/react";
import axios from "axios";
@@ -92,6 +92,9 @@ const UserCard = ({
user.type === "corporate" || user.type === "mastercorporate" ? user.demographicInformation?.position : undefined,
);
const [studentID, setStudentID] = useState<string | undefined>(user.type === "student" ? user.studentID : undefined);
const [name, setName] = useState<string>(user.name);
const [phone, setPhone] = useState<string | undefined>(user.demographicInformation?.phone);
const [gender, setGender] = useState<Gender | undefined>(user.demographicInformation?.gender);
const [referralAgent, setReferralAgent] = useState(
user.type === "corporate" || user.type === "mastercorporate" ? user.corporateInformation?.referralAgent : undefined,
@@ -152,6 +155,11 @@ const UserCard = ({
studentID,
type,
status,
name,
demographicInformation: {
...(!!user.demographicInformation ? user.demographicInformation : {}),
phone,
},
agentInformation:
type === "agent"
? {
@@ -429,10 +437,10 @@ const UserCard = ({
label="Name"
type="text"
name="name"
onChange={() => null}
onChange={setName}
placeholder="Enter your name"
defaultValue={user.name}
disabled
defaultValue={name}
disabled={disabled}
/>
<Input
label="E-mail Address"
@@ -454,10 +462,10 @@ const UserCard = ({
type="tel"
name="phone"
label="Phone number"
onChange={() => null}
onChange={setPhone}
placeholder="Enter phone number"
defaultValue={user.demographicInformation?.phone}
disabled
defaultValue={phone}
disabled={disabled}
/>
</div>
@@ -528,7 +536,8 @@ const UserCard = ({
<div className="relative flex flex-col gap-3 w-full">
<label className="font-normal text-base text-mti-gray-dim">Gender</label>
<RadioGroup
value={user.demographicInformation?.gender}
value={gender}
onChange={(e) => setGender(e)}
className="flex flex-row gap-4 justify-between"
disabled={disabled}>
<RadioGroup.Option value="male">
@@ -582,7 +591,9 @@ const UserCard = ({
isChecked={!!expiryDate}
onChange={(checked) => setExpiryDate(checked ? user.subscriptionExpirationDate || new Date() : null)}
disabled={
disabled || (!["admin", "developer"].includes(loggedInUser.type) && !!loggedInUser.subscriptionExpirationDate)
disabled ||
(!["admin", "developer", "mastercorporate", "corporate"].includes(loggedInUser.type) &&
!!loggedInUser.subscriptionExpirationDate)
}>
Enabled
</Checkbox>