38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { useContext } from "react";
|
|
import { GroupInformation, InformationContext } from "./InformationProvider";
|
|
|
|
export function useGroupInformation(groupId: string) : {
|
|
groupInfo: GroupInformation,
|
|
markAsDeleted: () => void,
|
|
updateGroupInformation: (groupInfo: GroupInformation) => void
|
|
} {
|
|
const context = useContext(InformationContext);
|
|
const {cachedGroups, updateGroupInformation} = context;
|
|
const group : GroupInformation = cachedGroups.find((group: GroupInformation) => group.groupId == groupId.replace("#group:", ""));
|
|
|
|
if(!context || !context.cachedGroups) {
|
|
throw new Error("useGroupInformation must be used within a InformationProvider");
|
|
}
|
|
|
|
if(groupId.trim() == ""){
|
|
throw new Error("Empty string passed to groupId with useGroupInformation hook");
|
|
}
|
|
|
|
const markAsDeleted = () => {
|
|
updateGroupInformation({
|
|
groupId: groupId,
|
|
title: "DELETED",
|
|
description: "No description available."
|
|
});
|
|
}
|
|
|
|
return {
|
|
groupInfo: {
|
|
groupId: groupId,
|
|
title: group ? group.title : "DELETED",
|
|
description: group ? group.description : "No description available."
|
|
},
|
|
markAsDeleted,
|
|
updateGroupInformation
|
|
};
|
|
} |