mirror of
				https://github.com/lingble/chatwoot.git
				synced 2025-11-03 20:48:07 +00:00 
			
		
		
		
	Fixes https://github.com/chatwoot/chatwoot/issues/8436 Fixes https://github.com/chatwoot/chatwoot/issues/9767 Fixes https://github.com/chatwoot/chatwoot/issues/10156 Fixes https://github.com/chatwoot/chatwoot/issues/6031 Fixes https://github.com/chatwoot/chatwoot/issues/5696 Fixes https://github.com/chatwoot/chatwoot/issues/9250 Fixes https://github.com/chatwoot/chatwoot/issues/9762 --------- Co-authored-by: Pranav <pranavrajs@gmail.com> Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
		
			
				
	
	
		
			90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { computed } from 'vue';
 | 
						|
import { useI18n } from 'vue-i18n';
 | 
						|
import { useMapGetter } from 'dashboard/composables/store';
 | 
						|
import wootConstants from 'dashboard/constants/globals';
 | 
						|
 | 
						|
import {
 | 
						|
  CMD_BULK_ACTION_SNOOZE_CONVERSATION,
 | 
						|
  CMD_BULK_ACTION_REOPEN_CONVERSATION,
 | 
						|
  CMD_BULK_ACTION_RESOLVE_CONVERSATION,
 | 
						|
} from 'dashboard/helper/commandbar/events';
 | 
						|
import {
 | 
						|
  ICON_SNOOZE_CONVERSATION,
 | 
						|
  ICON_REOPEN_CONVERSATION,
 | 
						|
  ICON_RESOLVE_CONVERSATION,
 | 
						|
} from 'dashboard/helper/commandbar/icons';
 | 
						|
import { emitter } from 'shared/helpers/mitt';
 | 
						|
 | 
						|
import { createSnoozeHandlers } from 'dashboard/helper/commandbar/actions';
 | 
						|
 | 
						|
const SNOOZE_OPTIONS = wootConstants.SNOOZE_OPTIONS;
 | 
						|
 | 
						|
const createEmitHandler = event => () => emitter.emit(event);
 | 
						|
 | 
						|
const SNOOZE_CONVERSATION_BULK_ACTIONS = [
 | 
						|
  {
 | 
						|
    id: 'bulk_action_snooze_conversation',
 | 
						|
    title: 'COMMAND_BAR.COMMANDS.SNOOZE_CONVERSATION',
 | 
						|
    section: 'COMMAND_BAR.SECTIONS.BULK_ACTIONS',
 | 
						|
    icon: ICON_SNOOZE_CONVERSATION,
 | 
						|
    children: Object.values(SNOOZE_OPTIONS),
 | 
						|
  },
 | 
						|
  ...createSnoozeHandlers(
 | 
						|
    CMD_BULK_ACTION_SNOOZE_CONVERSATION,
 | 
						|
    'bulk_action_snooze_conversation',
 | 
						|
    'COMMAND_BAR.SECTIONS.BULK_ACTIONS'
 | 
						|
  ),
 | 
						|
];
 | 
						|
 | 
						|
const RESOLVED_CONVERSATION_BULK_ACTIONS = [
 | 
						|
  {
 | 
						|
    id: 'bulk_action_reopen_conversation',
 | 
						|
    title: 'COMMAND_BAR.COMMANDS.REOPEN_CONVERSATION',
 | 
						|
    section: 'COMMAND_BAR.SECTIONS.BULK_ACTIONS',
 | 
						|
    icon: ICON_REOPEN_CONVERSATION,
 | 
						|
    handler: createEmitHandler(CMD_BULK_ACTION_REOPEN_CONVERSATION),
 | 
						|
  },
 | 
						|
];
 | 
						|
 | 
						|
const OPEN_CONVERSATION_BULK_ACTIONS = [
 | 
						|
  {
 | 
						|
    id: 'bulk_action_resolve_conversation',
 | 
						|
    title: 'COMMAND_BAR.COMMANDS.RESOLVE_CONVERSATION',
 | 
						|
    section: 'COMMAND_BAR.SECTIONS.BULK_ACTIONS',
 | 
						|
    icon: ICON_RESOLVE_CONVERSATION,
 | 
						|
    handler: createEmitHandler(CMD_BULK_ACTION_RESOLVE_CONVERSATION),
 | 
						|
  },
 | 
						|
];
 | 
						|
 | 
						|
export function useBulkActionsHotKeys() {
 | 
						|
  const { t } = useI18n();
 | 
						|
 | 
						|
  const selectedConversations = useMapGetter(
 | 
						|
    'bulkActions/getSelectedConversationIds'
 | 
						|
  );
 | 
						|
 | 
						|
  const prepareActions = actions => {
 | 
						|
    return actions.map(action => ({
 | 
						|
      ...action,
 | 
						|
      title: t(action.title),
 | 
						|
      section: t(action.section),
 | 
						|
    }));
 | 
						|
  };
 | 
						|
 | 
						|
  const bulkActionsHotKeys = computed(() => {
 | 
						|
    let actions = [];
 | 
						|
    if (selectedConversations.value.length > 0) {
 | 
						|
      actions = [
 | 
						|
        ...SNOOZE_CONVERSATION_BULK_ACTIONS,
 | 
						|
        ...RESOLVED_CONVERSATION_BULK_ACTIONS,
 | 
						|
        ...OPEN_CONVERSATION_BULK_ACTIONS,
 | 
						|
      ];
 | 
						|
    }
 | 
						|
    return prepareActions(actions);
 | 
						|
  });
 | 
						|
 | 
						|
  return {
 | 
						|
    bulkActionsHotKeys,
 | 
						|
  };
 | 
						|
}
 |