69 lines
2.2 KiB
JavaScript
69 lines
2.2 KiB
JavaScript
import { Result } from "antd";
|
|
import { useContext, useState } from "react";
|
|
import GroupTasksViewModal from "./GroupTasksViewModal";
|
|
import GroupTypeSelectionModal from "./GroupTypeSelectionModal";
|
|
import GroupTaskTableList from "./GroupTasksTableList";
|
|
import { Constants, WebSocketContext, hasXYPermission } from "../../../utils";
|
|
|
|
export default function GroupTasks({ isGroupTasksViewModalOpen }) {
|
|
const [isGroupTypeSelectionModalOpen, setIsGroupTypeSelectionModalOpen] =
|
|
useState(false);
|
|
const [currentCategoryGroup, setCurrentCategoryGroup] = useState([]);
|
|
const [currentSelectedModalGroupType, setCurrentSelectedModalGroupType] =
|
|
useState();
|
|
const webSocketContext = useContext(WebSocketContext);
|
|
|
|
const showGroupTypeSelectionModal = (categoryGroup) => {
|
|
setCurrentCategoryGroup(categoryGroup);
|
|
setIsGroupTypeSelectionModalOpen(true);
|
|
setCurrentSelectedModalGroupType(null);
|
|
};
|
|
|
|
const GroupTaskTableListItems = () => {
|
|
const items = [];
|
|
|
|
webSocketContext.CategoryGroups.forEach((categoryGroup) => {
|
|
if (
|
|
hasXYPermission(
|
|
webSocketContext.User.Permissions,
|
|
Constants.PERMISSIONS.GROUP_TASKS.OVERVIEW.XYView,
|
|
categoryGroup.category
|
|
)
|
|
) {
|
|
items.push(
|
|
<GroupTaskTableList
|
|
key={categoryGroup.category}
|
|
categoryGroup={categoryGroup}
|
|
showGroupTypeSelectionModal={showGroupTypeSelectionModal}
|
|
groupTasks={webSocketContext.GroupTasks}
|
|
/>
|
|
);
|
|
}
|
|
});
|
|
|
|
return items;
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<h1 style={{ fontWeight: "bold" }}>GROUP TASKS</h1>
|
|
|
|
{webSocketContext.CategoryGroups.length === 0 ? (
|
|
<Result status="404" title="No group tasks found" />
|
|
) : (
|
|
<GroupTaskTableListItems />
|
|
)}
|
|
|
|
<GroupTypeSelectionModal
|
|
isOpen={isGroupTypeSelectionModalOpen}
|
|
setIsOpen={setIsGroupTypeSelectionModalOpen}
|
|
categoryGroup={currentCategoryGroup}
|
|
currentSelectedModalGroupType={currentSelectedModalGroupType}
|
|
setCurrentSelectedModalGroupType={setCurrentSelectedModalGroupType}
|
|
/>
|
|
|
|
<GroupTasksViewModal isOpen={isGroupTasksViewModalOpen} />
|
|
</>
|
|
);
|
|
}
|