+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountDelete.vue b/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountDelete.vue
new file mode 100644
index 000000000..66c969a0a
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountDelete.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+ {{ markedForDeletionMessage }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountId.vue b/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountId.vue
new file mode 100644
index 000000000..f02efcdc2
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/components/AccountId.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/components/AutoResolve.vue b/app/javascript/dashboard/routes/dashboard/settings/account/components/AutoResolve.vue
new file mode 100644
index 000000000..bc76fee83
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/components/AutoResolve.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/components/BuildInfo.vue b/app/javascript/dashboard/routes/dashboard/settings/account/components/BuildInfo.vue
new file mode 100644
index 000000000..05f206136
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/components/BuildInfo.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+ {{
+ t('GENERAL_SETTINGS.UPDATE_CHATWOOT', {
+ latestChatwootVersion: latestChatwootVersion,
+ })
+ }}
+
+
+ {{ `v${globalConfig.appVersion}` }}
+
+ {{ `Build ${gitSha}` }}
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/account/components/SectionLayout.vue b/app/javascript/dashboard/routes/dashboard/settings/account/components/SectionLayout.vue
new file mode 100644
index 000000000..d1d29b1a7
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/account/components/SectionLayout.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/store/modules/accounts.js b/app/javascript/dashboard/store/modules/accounts.js
index 561695d28..662853720 100644
--- a/app/javascript/dashboard/store/modules/accounts.js
+++ b/app/javascript/dashboard/store/modules/accounts.js
@@ -66,7 +66,8 @@ export const actions = {
update: async ({ commit }, updateObj) => {
commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true });
try {
- await AccountAPI.update('', updateObj);
+ const response = await AccountAPI.update('', updateObj);
+ commit(types.default.EDIT_ACCOUNT, response.data);
commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false });
} catch (error) {
commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false });
diff --git a/app/javascript/dashboard/store/modules/specs/account/actions.spec.js b/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
index 57b4a2f80..9ffdf0ad4 100644
--- a/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
@@ -39,10 +39,13 @@ describe('#actions', () => {
describe('#update', () => {
it('sends correct actions if API is success', async () => {
- axios.patch.mockResolvedValue();
+ axios.patch.mockResolvedValue({
+ data: { id: 1, name: 'John' },
+ });
await actions.update({ commit, getters }, accountData);
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true }],
+ [types.default.EDIT_ACCOUNT, { id: 1, name: 'John' }],
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false }],
]);
});
diff --git a/app/javascript/entrypoints/sdk.js b/app/javascript/entrypoints/sdk.js
index 0aac9104e..a2cf297f1 100755
--- a/app/javascript/entrypoints/sdk.js
+++ b/app/javascript/entrypoints/sdk.js
@@ -23,12 +23,18 @@ const runSDK = ({ baseUrl, websiteToken }) => {
return;
}
- if (window.Turbo) {
- // if this is a Rails Turbo app
- document.addEventListener('turbo:before-render', event =>
- restoreWidgetInDOM(event.detail.newBody)
- );
- }
+ // if this is a Rails Turbo app
+ document.addEventListener('turbo:before-render', event => {
+ // when morphing the page, this typically happens on reload like events
+ // say you update a "Customer" on a form and it reloads the page
+ // We have already added data-turbo-permananent to true. This
+ // will ensure that the widget it preserved
+ // Read more about morphing here: https://turbo.hotwired.dev/handbook/page_refreshes#morphing
+ // and peristing elements here: https://turbo.hotwired.dev/handbook/building#persisting-elements-across-page-loads
+ if (event.detail.renderMethod === 'morph') return;
+
+ restoreWidgetInDOM(event.detail.newBody);
+ });
if (window.Turbolinks) {
document.addEventListener('turbolinks:before-render', event => {
diff --git a/app/javascript/sdk/DOMHelpers.js b/app/javascript/sdk/DOMHelpers.js
index f8ba55337..ce12836d7 100644
--- a/app/javascript/sdk/DOMHelpers.js
+++ b/app/javascript/sdk/DOMHelpers.js
@@ -5,6 +5,7 @@ export const loadCSS = () => {
const css = document.createElement('style');
css.innerHTML = `${SDK_CSS}`;
css.id = 'cw-widget-styles';
+ css.dataset.turboPermanent = true;
document.body.appendChild(css);
};
diff --git a/app/javascript/sdk/IFrameHelper.js b/app/javascript/sdk/IFrameHelper.js
index 21b2fb8d4..469fbe8de 100644
--- a/app/javascript/sdk/IFrameHelper.js
+++ b/app/javascript/sdk/IFrameHelper.js
@@ -82,6 +82,7 @@ export const IFrameHelper = {
addClasses(widgetHolder, holderClassName);
widgetHolder.id = 'cw-widget-holder';
+ widgetHolder.dataset.turboPermanent = true;
widgetHolder.appendChild(iframe);
body.appendChild(widgetHolder);
IFrameHelper.initPostMessageCommunication();
diff --git a/app/javascript/sdk/bubbleHelpers.js b/app/javascript/sdk/bubbleHelpers.js
index 05c67f478..c53323e27 100644
--- a/app/javascript/sdk/bubbleHelpers.js
+++ b/app/javascript/sdk/bubbleHelpers.js
@@ -67,6 +67,7 @@ export const createBubbleHolder = hideMessageBubble => {
}
addClasses(bubbleHolder, 'woot--bubble-holder');
bubbleHolder.id = 'cw-bubble-holder';
+ bubbleHolder.dataset.turboPermanent = true;
body.appendChild(bubbleHolder);
};
diff --git a/app/javascript/v3/components/Form/WithLabel.vue b/app/javascript/v3/components/Form/WithLabel.vue
index 9008479d9..846071e6d 100644
--- a/app/javascript/v3/components/Form/WithLabel.vue
+++ b/app/javascript/v3/components/Form/WithLabel.vue
@@ -1,28 +1,12 @@
-
@@ -30,8 +14,8 @@ export default {