import { Icon } from '@/components/Icon'; import { STRING_E2E_ENABLED, STRING_ENC_NOT_ENABLED, STRING_LOCAL_ENC_ENABLED, } from '@/strings'; import { AppState } from '@/ui_models/app_state'; import { observer } from 'mobx-react-lite'; import { ComponentChild, FunctionComponent } from 'preact'; import { PreferencesGroup, PreferencesSegment, Text, Title, } from '../../components'; const formatCount = (count: number, itemType: string) => `${count} / ${count} ${itemType}`; const EncryptionStatusItem: FunctionComponent<{ icon: ComponentChild; status: string; }> = ({ icon, status }) => (
{icon}
{status}
); const EncryptionEnabled: FunctionComponent<{ appState: AppState }> = observer( ({ appState }) => { const count = appState.accountMenu.structuredNotesAndTagsCount; const notes = formatCount(count.notes, 'notes'); const tags = formatCount(count.tags, 'tags'); const archived = formatCount(count.archived, 'archived notes'); const deleted = formatCount(count.deleted, 'trashed notes'); const noteIcon = ; const tagIcon = ; const archiveIcon = ; const trashIcon = ; return ( <>
); } ); export const Encryption: FunctionComponent<{ appState: AppState }> = observer( ({ appState }) => { const app = appState.application; const hasUser = app.hasAccount(); const hasPasscode = app.hasPasscode(); const isEncryptionEnabled = app.isEncryptionAvailable(); const encryptionStatusString = hasUser ? STRING_E2E_ENABLED : hasPasscode ? STRING_LOCAL_ENC_ENABLED : STRING_ENC_NOT_ENABLED; return ( Encryption {encryptionStatusString} {isEncryptionEnabled && } ); } );