import { Icon } from '@/Components/Icon' import { STRING_E2E_ENABLED, STRING_ENC_NOT_ENABLED, STRING_LOCAL_ENC_ENABLED } from '@/Strings' import { AppState } from '@/UIModels/AppState' import { observer } from 'mobx-react-lite' import { ComponentChild, FunctionComponent } from 'preact' import { PreferencesGroup, PreferencesSegment, Text, Title, } from '@/Components/Preferences/PreferencesComponents' 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 && } ) })