77 lines
2.4 KiB
TypeScript
77 lines
2.4 KiB
TypeScript
import type { ActionReturnType } from '../../types';
|
|
import { MAIN_THREAD_ID } from '../../../api/types';
|
|
|
|
import { getCurrentTabId } from '../../../util/establishMultitabRole';
|
|
import { addActionHandler } from '../../index';
|
|
import {
|
|
closeMiddleSearch,
|
|
resetMiddleSearch,
|
|
updateMiddleSearch,
|
|
updateSharedMediaSearchType,
|
|
} from '../../reducers';
|
|
import { selectCurrentMessageList } from '../../selectors';
|
|
|
|
addActionHandler('openMiddleSearch', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
const { chatId, threadId } = selectCurrentMessageList(global, tabId) || {};
|
|
if (!chatId || !threadId) {
|
|
return undefined;
|
|
}
|
|
|
|
return updateMiddleSearch(global, chatId, threadId, {}, tabId);
|
|
});
|
|
|
|
addActionHandler('closeMiddleSearch', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
const { chatId, threadId } = selectCurrentMessageList(global, tabId) || {};
|
|
if (!chatId || !threadId) {
|
|
return undefined;
|
|
}
|
|
|
|
return closeMiddleSearch(global, chatId, threadId, tabId);
|
|
});
|
|
|
|
addActionHandler('updateMiddleSearch', (global, actions, payload): ActionReturnType => {
|
|
const {
|
|
update, tabId = getCurrentTabId(),
|
|
} = payload;
|
|
|
|
let chatId;
|
|
let threadId;
|
|
if (payload.chatId) {
|
|
chatId = payload.chatId;
|
|
threadId = payload.threadId || MAIN_THREAD_ID;
|
|
} else {
|
|
const currentMessageList = selectCurrentMessageList(global, tabId);
|
|
if (!currentMessageList) {
|
|
return undefined;
|
|
}
|
|
chatId = currentMessageList.chatId;
|
|
threadId = currentMessageList.threadId;
|
|
}
|
|
|
|
global = updateMiddleSearch(global, chatId, threadId, update, tabId);
|
|
|
|
return global;
|
|
});
|
|
|
|
addActionHandler('resetMiddleSearch', (global, actions, payload): ActionReturnType => {
|
|
const { tabId = getCurrentTabId() } = payload || {};
|
|
const { chatId, threadId } = selectCurrentMessageList(global, tabId) || {};
|
|
if (!chatId || !threadId) {
|
|
return undefined;
|
|
}
|
|
|
|
return resetMiddleSearch(global, chatId, threadId, tabId);
|
|
});
|
|
|
|
addActionHandler('setSharedMediaSearchType', (global, actions, payload): ActionReturnType => {
|
|
const { mediaType, tabId = getCurrentTabId() } = payload;
|
|
const { chatId, threadId } = selectCurrentMessageList(global, tabId) || {};
|
|
if (!chatId || !threadId) {
|
|
return undefined;
|
|
}
|
|
|
|
return updateSharedMediaSearchType(global, chatId, threadId, mediaType, tabId);
|
|
});
|