mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-03 12:37:56 +00:00
This PR introduces several improvements to the Captain AI dashboard section: - New billing page, with new colors, layout and meters for Captain usage - Updated the base paywall component to use new colors - Updated PageLayout.vue, it's more generic and can be used for other pages as well - Use flags to toggle empty state and loading state - Add prop for `featureFlag` to show the paywall slot based on feature enabled on account - Update `useAccount` to add a `isCloudFeatureEnabled` - **Removed feature flag checks from captain route definitions**, so the captain entry will always be visible on the sidebar - Add banner to Captain pages for the following cases - Responses usage is over 80% - Documents limit is fully exhausted ### Screenshots <details><summary>Free plan</summary> <p>   </p> </details> <details><summary>Paid plan</summary> <p>   </p> </details> --------- Co-authored-by: Sojan Jose <sojan@pepalo.com> Co-authored-by: Pranav <pranav@chatwoot.com> Co-authored-by: Muhsin Keloth <muhsinkeramam@gmail.com>
41 lines
964 B
Vue
41 lines
964 B
Vue
<script setup>
|
|
import { onMounted, computed } from 'vue';
|
|
import { useAccount } from 'dashboard/composables/useAccount';
|
|
import { useCaptain } from 'dashboard/composables/useCaptain';
|
|
import { useRouter } from 'vue-router';
|
|
|
|
import Banner from 'dashboard/components-next/banner/Banner.vue';
|
|
|
|
const router = useRouter();
|
|
const { accountId } = useAccount();
|
|
|
|
const { documentLimits, fetchLimits } = useCaptain();
|
|
|
|
const openBilling = () => {
|
|
router.push({
|
|
name: 'billing_settings_index',
|
|
params: { accountId: accountId.value },
|
|
});
|
|
};
|
|
|
|
const showBanner = computed(() => {
|
|
if (!documentLimits.value) return false;
|
|
|
|
const { currentAvailable } = documentLimits.value;
|
|
return currentAvailable === 0;
|
|
});
|
|
|
|
onMounted(fetchLimits);
|
|
</script>
|
|
|
|
<template>
|
|
<Banner
|
|
v-show="showBanner"
|
|
color="amber"
|
|
:action-label="$t('CAPTAIN.PAYWALL.UPGRADE_NOW')"
|
|
@action="openBilling"
|
|
>
|
|
{{ $t('CAPTAIN.BANNER.DOCUMENTS') }}
|
|
</Banner>
|
|
</template>
|