// 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; } );