// Copyright 2023 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import { createSelector } from 'reselect'; import type { StateType } from '../reducer'; import type { ComposerStateType, QuotedMessageType } from '../ducks/composer'; import { getComposerStateForConversation } from '../ducks/composer'; import { getRemoteConfig, isRemoteConfigFlagEnabled } from './items'; export const getComposerState = (state: StateType): ComposerStateType => state.composer; export const getComposerStateForConversationIdSelector = createSelector( getComposerState, composer => (conversationId: string) => getComposerStateForConversation(composer, conversationId) ); export const getQuotedMessageSelector = createSelector( getComposerStateForConversationIdSelector, composerStateForConversationIdSelector => (conversationId: string): QuotedMessageType | undefined => composerStateForConversationIdSelector(conversationId).quotedMessage ); export const getIsFormattingFlagEnabled = createSelector( getRemoteConfig, remoteConfig => { return isRemoteConfigFlagEnabled(remoteConfig, 'desktop.textFormatting'); } ); export const getIsFormattingSpoilersFlagEnabled = createSelector( getRemoteConfig, remoteConfig => { return isRemoteConfigFlagEnabled( remoteConfig, 'desktop.textFormatting.spoilerSend' ); } );