From a5e4be2af456305198335cd9529c25ba6a88f54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Mon, 16 Dec 2024 11:42:47 +0100 Subject: [PATCH 01/12] Add new button for deleting comm.pck --- www/src/components/editor/EditorSidebar.tsx | 9 ++++++++- www/src/context/CommissioningPackageContext.tsx | 6 ++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/www/src/components/editor/EditorSidebar.tsx b/www/src/components/editor/EditorSidebar.tsx index d6b089ed..95f8755f 100644 --- a/www/src/components/editor/EditorSidebar.tsx +++ b/www/src/components/editor/EditorSidebar.tsx @@ -1,5 +1,5 @@ import { SideBar, SidebarLinkProps } from "@equinor/eds-core-react"; -import { add, boundaries, category, texture } from "@equinor/eds-icons"; +import { add, boundaries, category, texture, delete_to_trash } from "@equinor/eds-icons"; import styled from "styled-components"; import { useContext, useState } from "react"; import Tools from "../../enums/Tools.ts"; @@ -33,6 +33,13 @@ export default function EditorSidebar() { }, active: activeTool === Tools.INSIDEBOUNDARY, }, + { + label: "Delete commissioning package", + icon: delete_to_trash, + onClick: () => { + context?.deleteCommissioningPackage(context.activePackage.id); + }, + }, ]; return ( <> diff --git a/www/src/context/CommissioningPackageContext.tsx b/www/src/context/CommissioningPackageContext.tsx index 1cdf76cf..94b586df 100644 --- a/www/src/context/CommissioningPackageContext.tsx +++ b/www/src/context/CommissioningPackageContext.tsx @@ -9,6 +9,7 @@ export interface CommissioningPackageContextProps { setCommissioningPackages: React.Dispatch< React.SetStateAction >; + deleteCommissioningPackage: (packageId: string) => void; } const CommissioningPackageContext = createContext< @@ -36,6 +37,10 @@ export const CommissioningPackageContextProvider: React.FC<{ } }, [activePackage, commissioningPackages]); + const deleteCommissioningPackage = (packageId: string) => { + console.log("Deleting package with id: ", packageId); + }; + return ( {children} From fd155c47a0a75e7e124da1ab51c8eb44259df956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Mon, 16 Dec 2024 12:31:50 +0100 Subject: [PATCH 02/12] Add equinor font --- www/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/www/index.html b/www/index.html index 2e181c3f..e9e4b0ff 100644 --- a/www/index.html +++ b/www/index.html @@ -3,6 +3,7 @@ + P&ID From 5b44211e484af5aa40ecded8359976bf3a199a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Mon, 16 Dec 2024 12:46:05 +0100 Subject: [PATCH 03/12] Add dialog on delete --- www/src/components/editor/EditorSidebar.tsx | 37 +++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/www/src/components/editor/EditorSidebar.tsx b/www/src/components/editor/EditorSidebar.tsx index 95f8755f..260ed372 100644 --- a/www/src/components/editor/EditorSidebar.tsx +++ b/www/src/components/editor/EditorSidebar.tsx @@ -1,4 +1,4 @@ -import { SideBar, SidebarLinkProps } from "@equinor/eds-core-react"; +import { Button, Dialog, SideBar, SidebarLinkProps } from "@equinor/eds-core-react"; import { add, boundaries, category, texture, delete_to_trash } from "@equinor/eds-icons"; import styled from "styled-components"; import { useContext, useState } from "react"; @@ -15,6 +15,7 @@ export default function EditorSidebar() { const context = useCommissioningPackageContext(); const { activeTool, setActiveTool } = useContext(ToolContext); const [isCreationOpen, setIsCreationOpen] = useState(false); + const [isDeleteOpen, setIsDeleteOpen] = useState(false); const menuItemsInitial: SidebarLinkProps[] = [ { @@ -37,7 +38,7 @@ export default function EditorSidebar() { label: "Delete commissioning package", icon: delete_to_trash, onClick: () => { - context?.deleteCommissioningPackage(context.activePackage.id); + setIsDeleteOpen(true); }, }, ]; @@ -47,6 +48,38 @@ export default function EditorSidebar() { open={isCreationOpen} setOpen={setIsCreationOpen} /> + { + setIsDeleteOpen(false); + }} + > + + + Delete Commissioning Package + + + + {`Do you really want to delete commissioning package with id `} + {context?.activePackage.id} + {`?`} + + + + + + From cfca704dbf8772fd9b67189b7bb0bfd7d356802b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Mon, 16 Dec 2024 13:32:45 +0100 Subject: [PATCH 04/12] Add method for deleting comm.pkg --- www/src/components/editor/EditorSidebar.tsx | 1 + www/src/context/CommissioningPackageContext.tsx | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/www/src/components/editor/EditorSidebar.tsx b/www/src/components/editor/EditorSidebar.tsx index 260ed372..f105ed12 100644 --- a/www/src/components/editor/EditorSidebar.tsx +++ b/www/src/components/editor/EditorSidebar.tsx @@ -68,6 +68,7 @@ export default function EditorSidebar() { + + + + ); +}; + +export default DeleteCommissioningPackageDialog; \ No newline at end of file diff --git a/www/src/components/editor/EditorSidebar.tsx b/www/src/components/editor/EditorSidebar.tsx index f9167024..cc36db01 100644 --- a/www/src/components/editor/EditorSidebar.tsx +++ b/www/src/components/editor/EditorSidebar.tsx @@ -1,11 +1,12 @@ -import {Button, Checkbox, Dialog, SideBar, SidebarLinkProps, Table} from "@equinor/eds-core-react"; +import { SideBar, SidebarLinkProps } from "@equinor/eds-core-react"; import { add, boundaries, category, texture, delete_to_trash } from "@equinor/eds-icons"; import styled from "styled-components"; -import { useContext, useState, useEffect } from "react"; +import { useContext, useState } from "react"; import Tools from "../../enums/Tools.ts"; import { useCommissioningPackageContext } from "../../hooks/useCommissioningPackageContext.tsx"; import ToolContext from "../../context/ToolContext.ts"; import CommissioningPackageCreationDialog from "./CommissioningPackageCreationDialog.tsx"; +import CommissioningPackageDeletionDialog from "./CommissioningPackageDeletionDialog.tsx"; const StyledSideBar = styled.div` height: 100%; @@ -16,33 +17,6 @@ export default function EditorSidebar() { const { activeTool, setActiveTool } = useContext(ToolContext); const [isCreationOpen, setIsCreationOpen] = useState(false); const [isDeleteOpen, setIsDeleteOpen] = useState(false); - const [selectedPackages, setSelectedPackages] = useState>(new Set()); - - const handleCheckboxChange = (packageId: string) => { - setSelectedPackages((prevSelected) => { - const newSelected = new Set(prevSelected); - if (newSelected.has(packageId)) { - newSelected.delete(packageId); - } else { - newSelected.add(packageId); - } - return newSelected; - }); - }; - - const handleDelete = () => { - selectedPackages.forEach((packageId) => { - context?.deleteCommissioningPackage(packageId); - }); - setIsDeleteOpen(false); - setSelectedPackages(new Set()); - }; - - useEffect(() => { - if (isDeleteOpen && context?.activePackage) { - setSelectedPackages(new Set([context.activePackage.id])); - } - }, [isDeleteOpen, context?.activePackage]); const menuItemsInitial: SidebarLinkProps[] = [ { @@ -69,63 +43,17 @@ export default function EditorSidebar() { }, }, ]; + return ( <> - { - setIsDeleteOpen(false); - }} - > - - - Delete Commissioning Packages - - - - Choose which commissioning packages to delete: - {context?.commissioningPackages.map((commpckg) => ( - - - -
-
- handleCheckboxChange(commpckg.id)} - /> -
-
-
-
- ))} -
- - - - -
+ setIsDeleteOpen(false)} + /> From fef0922bc37318ffc1ea070d27f44bda3aed8d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Mon, 30 Dec 2024 18:20:39 +0100 Subject: [PATCH 11/12] Use Table.Body --- .../CommissioningPackageDeletionDialog.tsx | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/www/src/components/editor/CommissioningPackageDeletionDialog.tsx b/www/src/components/editor/CommissioningPackageDeletionDialog.tsx index 0e4dfbb1..016539c5 100644 --- a/www/src/components/editor/CommissioningPackageDeletionDialog.tsx +++ b/www/src/components/editor/CommissioningPackageDeletionDialog.tsx @@ -44,31 +44,33 @@ const DeleteCommissioningPackageDialog: React.FC = ({ isOpen, Choose which commissioning packages to delete: - {context?.commissioningPackages.map((commpckg) => ( - - - -
-
- handleCheckboxChange(commpckg.id)} - /> -
-
-
-
- ))} + + + {context?.commissioningPackages.map((commpckg) => ( + + +
+
+ handleCheckboxChange(commpckg.id)} + /> +
+
+
+ ))} +
+
From 222dfe7cc1a068d840c8d111a2d20aa9b8d263f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Embla=20=C3=98ye?= Date: Thu, 2 Jan 2025 08:32:11 +0100 Subject: [PATCH 12/12] Create initial package when all packages are deleted --- .../components/editor/CommissioningPackageDeletionDialog.tsx | 4 ++++ www/src/context/CommissioningPackageContext.tsx | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/www/src/components/editor/CommissioningPackageDeletionDialog.tsx b/www/src/components/editor/CommissioningPackageDeletionDialog.tsx index 016539c5..fc43978f 100644 --- a/www/src/components/editor/CommissioningPackageDeletionDialog.tsx +++ b/www/src/components/editor/CommissioningPackageDeletionDialog.tsx @@ -29,6 +29,10 @@ const DeleteCommissioningPackageDialog: React.FC = ({ isOpen, }); onClose(); setSelectedPackages(new Set()); + + if (context?.commissioningPackages.length === 0) { + context?.createInitialPackage(); + } }; useEffect(() => { diff --git a/www/src/context/CommissioningPackageContext.tsx b/www/src/context/CommissioningPackageContext.tsx index 7d525259..b55f0677 100644 --- a/www/src/context/CommissioningPackageContext.tsx +++ b/www/src/context/CommissioningPackageContext.tsx @@ -11,13 +11,14 @@ export interface CommissioningPackageContextProps { React.SetStateAction >; deleteCommissioningPackage: (packageId: string) => void; + createInitialPackage: () => CommissioningPackage; } const CommissioningPackageContext = createContext< CommissioningPackageContextProps | undefined >(undefined); -const createInitialPackage = (): CommissioningPackage => ({ +export const createInitialPackage = (): CommissioningPackage => ({ id: "asset:Package1", name: "Initial Package", color: HighlightColors.LASER_LEMON, @@ -82,6 +83,7 @@ export const CommissioningPackageContextProvider: React.FC<{ commissioningPackages, setCommissioningPackages, deleteCommissioningPackage, + createInitialPackage, }} > {children}