{
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/BulkSelectBar.vue b/app/javascript/dashboard/components-next/captain/assistant/BulkSelectBar.vue
index 0bf2007..fc72068 100755
--- a/app/javascript/dashboard/components-next/captain/assistant/BulkSelectBar.vue
+++ b/app/javascript/dashboard/components-next/captain/assistant/BulkSelectBar.vue
@@ -52,6 +52,7 @@ const bulkCheckboxState = computed({
+
+
{
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/InboxCard.story.vue b/app/javascript/dashboard/components-next/captain/assistant/InboxCard.story.vue
index afddce4..8711bff 100755
--- a/app/javascript/dashboard/components-next/captain/assistant/InboxCard.story.vue
+++ b/app/javascript/dashboard/components-next/captain/assistant/InboxCard.story.vue
@@ -4,6 +4,7 @@ import { inboxes } from 'dashboard/components-next/captain/pageComponents/emptyS
+
-import { computed } from 'vue';
+import { computed, ref, watch } from 'vue';
import { useToggle } from '@vueuse/core';
import { useI18n } from 'vue-i18n';
+import { useAlert } from 'dashboard/composables';
+import { useStore } from 'dashboard/composables/store';
import CardLayout from 'dashboard/components-next/CardLayout.vue';
import DropdownMenu from 'dashboard/components-next/dropdown-menu/DropdownMenu.vue';
import Button from 'dashboard/components-next/button/Button.vue';
+import Switch from 'dashboard/components-next/switch/Switch.vue';
import Policy from 'dashboard/components/policy.vue';
import { INBOX_TYPES, getInboxIconByType } from 'dashboard/helper/inbox';
@@ -18,13 +21,29 @@ const props = defineProps({
type: Object,
required: true,
},
+ assistantId: {
+ type: [Number, String],
+ required: true,
+ },
});
const emit = defineEmits(['action']);
const { t } = useI18n();
+const store = useStore();
const [showActionsDropdown, toggleDropdown] = useToggle();
+const isUpdating = ref(false);
+const reminderToolEnabled = ref(
+ props.inbox?.captain_inbox?.always_use_reminder_tool || false
+);
+
+watch(
+ () => props.inbox?.captain_inbox?.always_use_reminder_tool,
+ value => {
+ reminderToolEnabled.value = value || false;
+ }
+);
const inboxName = computed(() => {
const inbox = props.inbox;
@@ -66,9 +85,30 @@ const handleAction = ({ action, value }) => {
toggleDropdown(false);
emit('action', { action, value, id: props.id });
};
+
+const toggleReminderTool = async value => {
+ if (isUpdating.value) return;
+ isUpdating.value = true;
+ reminderToolEnabled.value = value;
+ try {
+ await store.dispatch('captainInboxes/update', {
+ id: props.id,
+ assistantId: props.assistantId,
+ always_use_reminder_tool: value,
+ });
+ useAlert(t('CAPTAIN.INBOXES.REMINDER_TOOL.SUCCESS'));
+ } catch (error) {
+ reminderToolEnabled.value =
+ props.inbox?.captain_inbox?.always_use_reminder_tool || false;
+ useAlert(t('CAPTAIN.INBOXES.REMINDER_TOOL.ERROR'));
+ } finally {
+ isUpdating.value = false;
+ }
+};
+
{
+
+ {{ t('CAPTAIN.INBOXES.REMINDER_TOOL.LABEL') }}
+
+
+
+ {{ t('CAPTAIN.INBOXES.REMINDER_TOOL.HELP') }}
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue b/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue
index 044b945..e626f08 100755
--- a/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue
+++ b/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue
@@ -49,6 +49,7 @@ watch(() => props.messages.length, scrollToBottom);
+
+
{
+
+
{
+
+
() =>
+
+
{
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/ToolsDropdown.story.vue b/app/javascript/dashboard/components-next/captain/assistant/ToolsDropdown.story.vue
index 7d0d903..5d3fd6b 100755
--- a/app/javascript/dashboard/components-next/captain/assistant/ToolsDropdown.story.vue
+++ b/app/javascript/dashboard/components-next/captain/assistant/ToolsDropdown.story.vue
@@ -24,6 +24,7 @@ const selectedIndex = ref(0);
+
+
+
+ {{ t('CAPTAIN.INBOXES.REMINDER_TOOL.HELP') }} +