From f4386fbcbcb32cb8c69d469dbfca9812ca586f01 Mon Sep 17 00:00:00 2001 From: Favour Olayinka Date: Wed, 17 Jul 2024 15:07:19 +0100 Subject: [PATCH] 55919 form editor error boundary (#494) * fix password reset bug * form editor error boundary * fix crisp * fix layout on create and edit pages --------- Co-authored-by: Julien Nahum --- client/components/global/ErrorBoundary.vue | 30 ++++++++ client/components/open/editors/UndoRedo.vue | 34 +++------ .../open/forms/components/FormEditor.vue | 7 +- .../components/FormEditorErrorHandler.vue | 69 +++++++++++++++++++ client/composables/useCrisp.js | 27 +++++++- client/pages/forms/[slug]/edit.vue | 2 +- client/pages/forms/create/index.vue | 6 +- 7 files changed, 145 insertions(+), 30 deletions(-) create mode 100644 client/components/global/ErrorBoundary.vue create mode 100644 client/components/open/forms/components/FormEditorErrorHandler.vue diff --git a/client/components/global/ErrorBoundary.vue b/client/components/global/ErrorBoundary.vue new file mode 100644 index 00000000..0533faf7 --- /dev/null +++ b/client/components/global/ErrorBoundary.vue @@ -0,0 +1,30 @@ + + + + \ No newline at end of file diff --git a/client/components/open/editors/UndoRedo.vue b/client/components/open/editors/UndoRedo.vue index 3c42860a..6479fed5 100644 --- a/client/components/open/editors/UndoRedo.vue +++ b/client/components/open/editors/UndoRedo.vue @@ -3,7 +3,11 @@ size="sm" orientation="horizontal" > - + - + { - return getOS() == 'macOS' ? ['⌘', 'Z'] : ['Ctrl', 'Z'] -}) - -const redoShortcut = computed(() => { - return getOS() == 'macOS' ? ['⌘', 'Shift', 'Z'] : ['Ctrl', 'Shift', 'Z'] -}) +const { metaSymbol } = useShortcuts() onMounted(() => { setTimeout(() => { clearHistory() }, 500) }) -const getOS = ()=> { - if (navigator.userAgentData) { - // Modern method - return navigator.userAgentData.platform; - } else { - // Fallback for older browsers - const userAgent = navigator.userAgent.toLowerCase(); - if (userAgent.indexOf("mac") > -1) return "macOS"; - if (userAgent.indexOf("win") > -1) return "Windows"; - if (userAgent.indexOf("linux") > -1) return "Linux"; - return "Unknown"; - } -} diff --git a/client/components/open/forms/components/FormEditor.vue b/client/components/open/forms/components/FormEditor.vue index f1dc5f54..d69e8ac9 100644 --- a/client/components/open/forms/components/FormEditor.vue +++ b/client/components/open/forms/components/FormEditor.vue @@ -81,6 +81,7 @@ +
+
+ + + + + + + + + + \ No newline at end of file diff --git a/client/composables/useCrisp.js b/client/composables/useCrisp.js index 58613246..fb4c98c3 100644 --- a/client/composables/useCrisp.js +++ b/client/composables/useCrisp.js @@ -98,6 +98,28 @@ export function useCrisp () { crisp.session.setSegments(segments, overwrite) } + // Send message as operator + function showMessage (message, delay = 500) { + if (!crisp) + return + setTimeout(() => { + crisp.message.show('text', message) + }, delay) + } + + function pauseChatBot () { + if (!crisp) + return + crisp.session.setData({ 'enum': 'pause_chatbot' }) + } + + function enableChatbot () { + if (!crisp) + return + crisp.session.setData({ 'enum': 'start_chatbot' }) + } + + return { crisp, onCrispInit, @@ -111,6 +133,9 @@ export function useCrisp () { sendTextMessage, pushEvent, setSegments, - setUser + setUser, + pauseChatBot, + enableChatbot, + showMessage } } diff --git a/client/pages/forms/[slug]/edit.vue b/client/pages/forms/[slug]/edit.vue index 09a2a997..b829e635 100644 --- a/client/pages/forms/[slug]/edit.vue +++ b/client/pages/forms/[slug]/edit.vue @@ -1,5 +1,5 @@