diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/document/LimitBanner.vue b/app/javascript/dashboard/components-next/captain/pageComponents/document/LimitBanner.vue
index d4f512f39..01d8169c9 100644
--- a/app/javascript/dashboard/components-next/captain/pageComponents/document/LimitBanner.vue
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/document/LimitBanner.vue
@@ -1,5 +1,5 @@
diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/response/LimitBanner.vue b/app/javascript/dashboard/components-next/captain/pageComponents/response/LimitBanner.vue
index 0b5462f0b..e2fb64609 100644
--- a/app/javascript/dashboard/components-next/captain/pageComponents/response/LimitBanner.vue
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/response/LimitBanner.vue
@@ -1,5 +1,5 @@
diff --git a/app/javascript/dashboard/composables/useCaptain.js b/app/javascript/dashboard/composables/useCaptain.js
index d28560944..e203efd39 100644
--- a/app/javascript/dashboard/composables/useCaptain.js
+++ b/app/javascript/dashboard/composables/useCaptain.js
@@ -1,11 +1,9 @@
import { computed } from 'vue';
-import { useStore } from 'dashboard/composables/store.js';
import { useAccount } from 'dashboard/composables/useAccount';
import { useCamelCase } from 'dashboard/composables/useTransformKeys';
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
export function useCaptain() {
- const store = useStore();
const { isCloudFeatureEnabled, currentAccount } = useAccount();
const captainEnabled = computed(() => {
@@ -32,15 +30,10 @@ export function useCaptain() {
return null;
});
- const fetchLimits = () => {
- store.dispatch('accounts/limits');
- };
-
return {
captainEnabled,
captainLimits,
documentLimits,
responseLimits,
- fetchLimits,
};
}
diff --git a/app/javascript/dashboard/routes/dashboard/Dashboard.vue b/app/javascript/dashboard/routes/dashboard/Dashboard.vue
index 7de36102b..0b058937d 100644
--- a/app/javascript/dashboard/routes/dashboard/Dashboard.vue
+++ b/app/javascript/dashboard/routes/dashboard/Dashboard.vue
@@ -9,6 +9,7 @@ import AccountSelector from 'dashboard/components/layout/sidebarComponents/Accou
import AddLabelModal from 'dashboard/routes/dashboard/settings/labels/AddLabel.vue';
import NotificationPanel from 'dashboard/routes/dashboard/notifications/components/NotificationPanel.vue';
import UpgradePage from 'dashboard/routes/dashboard/upgrade/UpgradePage.vue';
+import Spinner from 'dashboard/components-next/spinner/Spinner.vue';
import { useUISettings } from 'dashboard/composables/useUISettings';
import { useAccount } from 'dashboard/composables/useAccount';
@@ -37,6 +38,7 @@ export default {
AddLabelModal,
NotificationPanel,
UpgradePage,
+ Spinner,
},
setup() {
const upgradePageRef = ref(null);
@@ -64,6 +66,8 @@ export default {
computed: {
...mapGetters({
isFeatureEnabledonAccount: 'accounts/isFeatureEnabledonAccount',
+ accountUIFlags: 'accounts/getUIFlags',
+ isOnChatwootCloud: 'globalConfig/isOnChatwootCloud',
}),
currentRoute() {
return ' ';
@@ -116,6 +120,7 @@ export default {
},
},
mounted() {
+ this.fetchLimits();
this.handleResize();
this.$nextTick(this.checkBanner);
window.addEventListener('resize', this.handleResize);
@@ -129,6 +134,10 @@ export default {
},
methods: {
+ fetchLimits() {
+ if (!this.isOnChatwootCloud) return;
+ this.$store.dispatch('accounts/limits');
+ },
checkBanner() {
this.hasBanner =
document.getElementsByClassName('woot-banner').length > 0;
@@ -216,7 +225,13 @@ export default {
ref="upgradePageRef"
:bypass-upgrade-page="bypassUpgradePage"
/>
-
+
+
+
+
{
const fetchAccountDetails = async () => {
if (!hasABillingPlan.value) {
store.dispatch('accounts/subscription');
- fetchLimits();
}
};
diff --git a/app/javascript/dashboard/routes/dashboard/upgrade/UpgradePage.vue b/app/javascript/dashboard/routes/dashboard/upgrade/UpgradePage.vue
index c23d3e76b..d6185aa56 100644
--- a/app/javascript/dashboard/routes/dashboard/upgrade/UpgradePage.vue
+++ b/app/javascript/dashboard/routes/dashboard/upgrade/UpgradePage.vue
@@ -1,6 +1,5 @@
diff --git a/app/javascript/dashboard/store/modules/accounts.js b/app/javascript/dashboard/store/modules/accounts.js
index fb2c8b89f..4ddd73aa0 100644
--- a/app/javascript/dashboard/store/modules/accounts.js
+++ b/app/javascript/dashboard/store/modules/accounts.js
@@ -18,6 +18,7 @@ const state = {
isFetchingItem: false,
isUpdating: false,
isCheckoutInProcess: false,
+ isFetchingLimits: false,
},
};
@@ -110,11 +111,14 @@ export const actions = {
},
limits: async ({ commit }) => {
+ commit(types.default.SET_ACCOUNT_UI_FLAG, { isFetchingLimits: true });
try {
const response = await EnterpriseAccountAPI.getLimits();
commit(types.default.SET_ACCOUNT_LIMITS, response.data);
} catch (error) {
// silent error
+ } finally {
+ commit(types.default.SET_ACCOUNT_UI_FLAG, { isFetchingLimits: false });
}
},