38 lines
1,009 B
TypeScript
38 lines
1,009 B
TypeScript
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { createSelector } from 'reselect';
|
|
import type { CallHistoryState } from '../ducks/callHistory';
|
|
import type { StateType } from '../reducer';
|
|
import type { CallHistoryDetails } from '../../types/CallDisposition';
|
|
import { getOwn } from '../../util/getOwn';
|
|
|
|
const getCallHistory = (state: StateType): CallHistoryState =>
|
|
state.callHistory;
|
|
|
|
export const getCallHistoryEdition = createSelector(
|
|
getCallHistory,
|
|
callHistory => {
|
|
return callHistory.edition;
|
|
}
|
|
);
|
|
|
|
export type CallHistorySelectorType = (
|
|
callId: string
|
|
) => CallHistoryDetails | void;
|
|
|
|
export const getCallHistorySelector = createSelector(
|
|
getCallHistory,
|
|
(callHistory): CallHistorySelectorType => {
|
|
return callId => {
|
|
return getOwn(callHistory.callHistoryByCallId, callId);
|
|
};
|
|
}
|
|
);
|
|
|
|
export const getCallHistoryUnreadCount = createSelector(
|
|
getCallHistory,
|
|
callHistory => {
|
|
return callHistory.unreadCount;
|
|
}
|
|
);
|