From c7ed86f7b5c82aeabdcd2f6f37134bfa0141e48a Mon Sep 17 00:00:00 2001
From: Ben Whitmore <ben.whitmore0@gmail.com>
Date: Fri, 19 Mar 2021 16:57:30 +1300
Subject: [PATCH] fix(form-builder): fix page crash on form deletion

Closes #42
---
 .../component-formbuilder/src/components/FormBuilderLayout.js | 4 +++-
 .../component-formbuilder/src/components/FormBuilderPage.js   | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/app/components/component-formbuilder/src/components/FormBuilderLayout.js b/app/components/component-formbuilder/src/components/FormBuilderLayout.js
index 055426023f..6e4b10c9bc 100644
--- a/app/components/component-formbuilder/src/components/FormBuilderLayout.js
+++ b/app/components/component-formbuilder/src/components/FormBuilderLayout.js
@@ -53,6 +53,7 @@ const FormBuilderLayout = ({
           key="delete-form"
           onClick={e => {
             e.preventDefault()
+            e.stopPropagation()
             deleteForm({
               variables: { formId: form.id },
             })
@@ -93,7 +94,8 @@ const FormBuilderLayout = ({
       <Columns>
         <Form>
           <Tabs
-            activeKey={`${activeFormId}`}
+            activeKey={activeFormId ?? 'new'}
+            key={activeFormId}
             onChange={tab => {
               setActiveFormId(tab)
               setActiveFieldId(null)
diff --git a/app/components/component-formbuilder/src/components/FormBuilderPage.js b/app/components/component-formbuilder/src/components/FormBuilderPage.js
index fa572c124f..14185d73fd 100644
--- a/app/components/component-formbuilder/src/components/FormBuilderPage.js
+++ b/app/components/component-formbuilder/src/components/FormBuilderPage.js
@@ -69,7 +69,7 @@ const FormBuilderPage = () => {
   useEffect(() => {
     if (!loading && data) {
       if (data.getForms.length) {
-        setActiveFormId(data.getForms[0].id)
+        setActiveFormId(prevFormId => prevFormId ?? data.getForms[0].id)
       } else {
         setActiveFormId('new')
       }
-- 
GitLab