in src/views/issues/issues-actions.ts [72:164]
name: i18n('Tickets'),
};
} else {
return EVERYTHING_SEARCH_CONTEXT;
}
};
const getSearchContext = (): ReduxAction<Folder> => (dispatch: ReduxThunkDispatch, getState: ReduxStateGetter) => {
const issueList = getState().issueList;
if (issueList.helpDeskMode) {
const hsc = issueList.helpdeskSearchContext;
return dispatch(isDefaultHelpdeskSearchContext(hsc.id)) ? dispatch(createDefaultHelpdeskSearchContext()) : hsc;
}
return issueList.searchContext;
};
const trackEvent = (msg: string, analyticsId: string = ANALYTICS_ISSUES_PAGE) => {
usage.trackEvent(
analyticsId,
msg,
);
};
const getPageSize = (): ReduxAction<number> => (
dispatch: ReduxThunkDispatch,
getState: ReduxStateGetter,
) => {
return getState().issueList.settings.view.mode === issuesViewSettingMode.S ? PAGE_SIZE * 3 : PAGE_SIZE;
};
const isHelpDeskMode = (): ReduxAction<boolean> => (
dispatch: ReduxThunkDispatch,
getState: ReduxStateGetter
) => getState().issueList.helpDeskMode;
const initSearchQuery = (): ReduxAction => async (dispatch: ReduxThunkDispatch) => {
if (dispatch(isHelpDeskMode())) {
dispatch(issuesActions.SET_HELPDESK_QUERY(getStorageState().helpdeskQuery || ''));
} else {
dispatch(issuesActions.SET_ISSUES_QUERY(getStorageState().query || ''));
}
};
const suggestIssuesQuery = (query: string, caret: number): ReduxAction => async (
dispatch: ReduxThunkDispatch,
getState: ReduxStateGetter,
getApi: ReduxAPIGetter,
) => {
const searchContext = dispatch(getSearchContext());
const suggestions = await getAssistSuggestions(
getApi(),
query,
caret,
searchContext.id ? [searchContext] : [],
'Issue',
);
dispatch(issuesActions.SUGGEST_QUERY(suggestions));
};
const storeIssuesQuery = (q: string): ReduxAction => (dispatch: ReduxThunkDispatch) => {
const query = q.trim();
const data: {
helpdeskQuery?: string;
query?: string;
lastQueries?: string[]
} = dispatch(isHelpDeskMode()) ? {helpdeskQuery: query} : {query};
if (q) {
const updatedQueries = [query, ...(getStorageState().lastQueries || [])];
data.lastQueries = Array.from(new Set(updatedQueries)).slice(0, MAX_STORED_QUERIES);
}
flushStoragePart(data);
};
const startIssuesLoading = () => setGlobalInProgress(true);
const stopIssuesLoading = () => setGlobalInProgress(false);
const setIssuesError = (error: CustomError): ReduxAction => async (dispatch: ReduxThunkDispatch) => {
dispatch(issuesActions.RESET_ISSUES_COUNT());
dispatch(issuesActions.LOADING_ISSUES_ERROR(error));
};
const cacheIssues = (issues: IssueOnListExtended[]): ReduxAction => (dispatch: ReduxThunkDispatch) => {
let updatedCache: IssueOnListExtended[] = issues;
const isHelpdeskMode = dispatch(isHelpDeskMode());
const cachedIssues: IssueOnListExtended[] | null = isHelpdeskMode
? getStorageState().helpdeskCache
: getStorageState().issuesCache;
if (cachedIssues) {
const issueActivityMap: Record<string, Activity[]> = cachedIssues.reduce(
(map: Record<string, Activity[]>, it: IssueOnListExtended) => {