Added initial support for "mastercorporate"

This commit is contained in:
Joao Ramos
2024-07-13 17:19:42 +01:00
parent 5cfd6d56a6
commit 5d46d7e453
20 changed files with 719 additions and 182 deletions

View File

@@ -2,16 +2,23 @@ import {Group, User} from "@/interfaces/user";
import axios from "axios";
import {useEffect, useState} from "react";
export default function useGroups(admin?: string) {
export default function useGroups(admin?: string, userType?: string) {
const [groups, setGroups] = useState<Group[]>([]);
const [isLoading, setIsLoading] = useState(false);
const [isError, setIsError] = useState(false);
const isMasterType = userType?.startsWith('master');
const getData = () => {
setIsLoading(true);
const url = admin ? `/api/groups?admin=${admin}` : "/api/groups";
axios
.get<Group[]>("/api/groups")
.get<Group[]>(url)
.then((response) => {
if(isMasterType) {
return setGroups(response.data);
}
const filter = (g: Group) => g.admin === admin || g.participants.includes(admin || "");
const filteredGroups = admin ? response.data.filter(filter) : response.data;
@@ -20,7 +27,7 @@ export default function useGroups(admin?: string) {
.finally(() => setIsLoading(false));
};
useEffect(getData, [admin]);
useEffect(getData, [admin, isMasterType]);
return {groups, isLoading, isError, reload: getData};
}