mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 10:42:38 +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>
44 lines
1.4 KiB
Vue
44 lines
1.4 KiB
Vue
<script setup>
|
|
import EmptyStateLayout from 'dashboard/components-next/EmptyStateLayout.vue';
|
|
import Button from 'dashboard/components-next/button/Button.vue';
|
|
import ResponseCard from 'dashboard/components-next/captain/assistant/ResponseCard.vue';
|
|
import { responsesList } from 'dashboard/components-next/captain/pageComponents/emptyStates/captainEmptyStateContent.js';
|
|
|
|
const emit = defineEmits(['click']);
|
|
|
|
const onClick = () => {
|
|
emit('click');
|
|
};
|
|
</script>
|
|
|
|
<template>
|
|
<EmptyStateLayout
|
|
:title="$t('CAPTAIN.RESPONSES.EMPTY_STATE.TITLE')"
|
|
:subtitle="$t('CAPTAIN.RESPONSES.EMPTY_STATE.SUBTITLE')"
|
|
:action-perms="['administrator']"
|
|
>
|
|
<template #empty-state-item>
|
|
<div class="grid grid-cols-1 gap-4 p-px overflow-hidden">
|
|
<ResponseCard
|
|
v-for="(response, index) in responsesList.slice(0, 5)"
|
|
:id="response.id"
|
|
:key="`response-${index}`"
|
|
:question="response.question"
|
|
:answer="response.answer"
|
|
:status="response.status"
|
|
:assistant="response.assistant"
|
|
:created-at="response.created_at"
|
|
:updated-at="response.created_at"
|
|
/>
|
|
</div>
|
|
</template>
|
|
<template #actions>
|
|
<Button
|
|
:label="$t('CAPTAIN.RESPONSES.ADD_NEW')"
|
|
icon="i-lucide-plus"
|
|
@click="onClick"
|
|
/>
|
|
</template>
|
|
</EmptyStateLayout>
|
|
</template>
|