// Copyright 2025 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import { createSelector } from 'reselect'; import type { StateType } from '../reducer.preload.ts'; import type { BackupsStateType } from '../ducks/backups.preload.ts'; import type { PlaintextExportWorkflowType, LocalBackupExportWorkflowType, } from '../../types/LocalExport.std.ts'; export const getBackups = (state: StateType): BackupsStateType => state.backups; export const shouldShowPlaintextWorkflow = createSelector( getBackups, (backups: BackupsStateType): boolean => { const workflow = backups.workflow?.workflow; const isPlaintextExport = backups.workflow?.type === 'plaintext-export'; if (!isPlaintextExport || !workflow) { return false; } return true; } ); export const getPlaintextWorkflow = createSelector( getBackups, (backups: BackupsStateType): PlaintextExportWorkflowType | undefined => { if (backups.workflow?.type !== 'plaintext-export') { return undefined; } return backups.workflow.workflow; } ); export const shouldShowLocalBackupWorkflow = createSelector( getBackups, (backups: BackupsStateType): boolean => { return backups.workflow?.type === 'local-backup'; } ); export const getLocalBackupWorkflow = createSelector( getBackups, (backups: BackupsStateType): LocalBackupExportWorkflowType | undefined => { if (backups.workflow?.type !== 'local-backup') { return undefined; } return backups.workflow.workflow; } );