From cdac9998b122f279a670737e6c62a0ec8666f86e Mon Sep 17 00:00:00 2001 From: Andrew Hopkinson <64254061+toxophilist@users.noreply.github.com> Date: Mon, 2 Dec 2024 13:40:19 +0000 Subject: [PATCH] refactor: remove duplicate code --- .../react/src/components/OcdCanvasLayers.tsx | 52 ++++++++----------- .../oci/resources/configs/OciSecurityList.ts | 6 +-- 2 files changed, 25 insertions(+), 33 deletions(-) diff --git a/ocd/packages/react/src/components/OcdCanvasLayers.tsx b/ocd/packages/react/src/components/OcdCanvasLayers.tsx index ba8d3c5e7..a0dc67281 100644 --- a/ocd/packages/react/src/components/OcdCanvasLayers.tsx +++ b/ocd/packages/react/src/components/OcdCanvasLayers.tsx @@ -86,23 +86,29 @@ const OcdCanvasLayer = ({ ocdDocument, setOcdDocument, layer } : LayerBarLayerPr ) } +const addLayer = (ocdDocument: OcdDocument, setOcdDocument: React.Dispatch, setMenuVisible: React.Dispatch | undefined) => { + console.debug('Adding Layer') + const compartment = OciModelResources.OciCompartment.newResource() + ocdDocument.design.model.oci.resources.compartment.push(compartment) + // Add Layer + ocdDocument.addLayer(compartment.id) + const page: OcdViewPage = ocdDocument.getActivePage() + page.layers.forEach((l: OcdViewLayer) => l.selected = l.id === compartment.id) + const selectedResource: OcdSelectedResource = { + modelId: compartment.id, + pageId: ocdDocument.getActivePage().id, + coordsId: '', + class: page.layers[0].class + } + ocdDocument.selectedResource = selectedResource + setOcdDocument(OcdDocument.clone(ocdDocument)) + if (setMenuVisible) setMenuVisible(false) +} + const OcdCanvasLayers = ({ ocdDocument, setOcdDocument }: LayerBarLayersProps): JSX.Element => { const onClickAddLayer = () => { console.debug('OcdCanvasLayers: Adding Layer') - const compartment = OciModelResources.OciCompartment.newResource() - ocdDocument.design.model.oci.resources.compartment.push(compartment) - // Add Layer - ocdDocument.addLayer(compartment.id) - const page: OcdViewPage = ocdDocument.getActivePage() - page.layers.forEach((l: OcdViewLayer) => l.selected = l.id === compartment.id) - const selectedResource: OcdSelectedResource = { - modelId: compartment.id, - pageId: ocdDocument.getActivePage().id, - coordsId: '', - class: page.layers[0].class - } - ocdDocument.selectedResource = selectedResource - setOcdDocument(OcdDocument.clone(ocdDocument)) + addLayer(ocdDocument, setOcdDocument, undefined) } const page: OcdViewPage = ocdDocument.getActivePage() @@ -157,22 +163,8 @@ const OcdLayersThreeDotMenu = ({ocdDocument, setOcdDocument}: LayerBarMenuProps) setMenuVisible(false) } const onAddLayerClick = () => { - console.debug('OcdCanvasLayers: Adding Layer') - const compartment = OciModelResources.OciCompartment.newResource() - ocdDocument.design.model.oci.resources.compartment.push(compartment) - // Add Layer - ocdDocument.addLayer(compartment.id) - const page: OcdViewPage = ocdDocument.getActivePage() - page.layers.forEach((l: OcdViewLayer) => l.selected = l.id === compartment.id) - const selectedResource: OcdSelectedResource = { - modelId: compartment.id, - pageId: ocdDocument.getActivePage().id, - coordsId: '', - class: page.layers[0].class - } - ocdDocument.selectedResource = selectedResource - setOcdDocument(OcdDocument.clone(ocdDocument)) - setMenuVisible(false) + console.debug('OcdCanvasLayers: OcdLayersThreeDotMenu: Adding Layer') + addLayer(ocdDocument, setOcdDocument, setMenuVisible) } const page: OcdViewPage = ocdDocument.getActivePage() const layer = page.layers.find((l) => l.selected) diff --git a/ocd/packages/react/src/components/properties/provider/oci/resources/configs/OciSecurityList.ts b/ocd/packages/react/src/components/properties/provider/oci/resources/configs/OciSecurityList.ts index 4934d34f8..4f2e15a8d 100644 --- a/ocd/packages/react/src/components/properties/provider/oci/resources/configs/OciSecurityList.ts +++ b/ocd/packages/react/src/components/properties/provider/oci/resources/configs/OciSecurityList.ts @@ -15,7 +15,7 @@ export namespace OciSecurityListConfigs { id: 'egress_security_rules.destination', properties: { placeholder: '0.0.0.0/0', - pattern: "^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$)+|^var\.+$", + pattern: String.raw`^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$)+|^var\.+$`, title: 'IPv4 CIDR block' }, configs: [] @@ -44,13 +44,13 @@ export namespace OciSecurityListConfigs { id: 'ingress_security_rules', properties: {}, configs: [], - summary: (open: boolean, resource: OcdResource, openValue: string) => open ? openValue : resource && resource.description.trim().length > 0 ? resource.description : openValue + summary: (open: boolean, resource: OcdResource, openValue: string) => open ? openValue : resource?.description.trim().length > 0 ? resource.description : openValue }, { id: 'ingress_security_rules.source', properties: { placeholder: '0.0.0.0/0', - pattern: "^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$)+|^var\.+$", + pattern: String.raw`^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/(3[0-2]|[1-2][0-9]|[0-9]))$)+|^var\.+$`, title: 'IPv4 CIDR block' }, configs: []