Improved the overall stability and speed of the app

This commit is contained in:
Tiago Ribeiro
2024-08-29 23:21:20 +01:00
parent b57e11bec4
commit 39710aaea1
17 changed files with 315 additions and 280 deletions

View File

@@ -55,7 +55,14 @@ const USER_TYPE_PERMISSIONS: {
},
};
export default function BatchCodeGenerator({user, onFinish}: {user: User; onFinish: () => void}) {
interface Props {
user: User;
users: User[];
permissions: PermissionType[];
onFinish: () => void;
}
export default function BatchCodeGenerator({user, users, permissions, onFinish}: Props) {
const [infos, setInfos] = useState<{email: string; name: string; passport_id: string}[]>([]);
const [isLoading, setIsLoading] = useState(false);
const [expiryDate, setExpiryDate] = useState<Date | null>(
@@ -65,9 +72,6 @@ export default function BatchCodeGenerator({user, onFinish}: {user: User; onFini
const [type, setType] = useState<Type>("student");
const [showHelp, setShowHelp] = useState(false);
const {users} = useUsers();
const {permissions} = usePermissions(user?.id || "");
const {openFilePicker, filesContent, clear} = useFilePicker({
accept: ".xlsx",
multiple: false,

View File

@@ -61,7 +61,14 @@ const USER_TYPE_PERMISSIONS: {
},
};
export default function BatchCreateUser({user, onFinish}: {user: User; onFinish: () => void}) {
interface Props {
user: User;
users: User[];
permissions: PermissionType[];
onFinish: () => void;
}
export default function BatchCreateUser({user, users, permissions, onFinish}: Props) {
const [infos, setInfos] = useState<
{
email: string;
@@ -83,9 +90,6 @@ export default function BatchCreateUser({user, onFinish}: {user: User; onFinish:
const [type, setType] = useState<Type>("student");
const [showHelp, setShowHelp] = useState(false);
const {users} = useUsers();
const {permissions} = usePermissions(user?.id || "");
const {openFilePicker, filesContent, clear} = useFilePicker({
accept: ".xlsx",
multiple: false,

View File

@@ -48,14 +48,19 @@ const USER_TYPE_PERMISSIONS: {
},
};
export default function CodeGenerator({user, onFinish}: {user: User; onFinish: () => void}) {
interface Props {
user: User;
permissions: PermissionType[];
onFinish: () => void;
}
export default function CodeGenerator({user, permissions, onFinish}: Props) {
const [generatedCode, setGeneratedCode] = useState<string>();
const [expiryDate, setExpiryDate] = useState<Date | null>(
user?.subscriptionExpirationDate ? moment(user.subscriptionExpirationDate).toDate() : null,
);
const [isExpiryDateEnabled, setIsExpiryDateEnabled] = useState(true);
const [type, setType] = useState<Type>("student");
const {permissions} = usePermissions(user?.id || "");
useEffect(() => {
if (!isExpiryDateEnabled) setExpiryDate(null);

View File

@@ -9,10 +9,15 @@ import PackageList from "./PackageList";
import UserList from "./UserList";
import {checkAccess} from "@/utils/permissions";
import usePermissions from "@/hooks/usePermissions";
import {PermissionType} from "@/interfaces/permissions";
export default function Lists({user}: {user: User}) {
const {permissions} = usePermissions(user?.id || "");
interface Props {
user: User;
users: User[];
permissions: PermissionType[];
}
export default function Lists({user, users, permissions}: Props) {
return (
<TabGroup>
<TabList className="flex space-x-1 rounded-xl bg-mti-purple-ultralight/40 p-1">

View File

@@ -54,7 +54,14 @@ const USER_TYPE_PERMISSIONS: {
},
};
export default function UserCreator({user, onFinish}: {user: User; onFinish: () => void}) {
interface Props {
user: User;
users: User[];
permissions: PermissionType[];
onFinish: () => void;
}
export default function UserCreator({user, users, permissions, onFinish}: Props) {
const [name, setName] = useState<string>();
const [email, setEmail] = useState<string>();
const [phone, setPhone] = useState<string>();
@@ -74,9 +81,7 @@ export default function UserCreator({user, onFinish}: {user: User; onFinish: ()
const [type, setType] = useState<Type>("student");
const [position, setPosition] = useState<string>();
const {permissions} = usePermissions(user?.id || "");
const {groups} = useGroups({admin: ["developer", "admin"].includes(user?.type) ? undefined : user?.id, userType: user?.type});
const {users} = useUsers();
useEffect(() => {
if (!isExpiryDateEnabled) setExpiryDate(null);