Files
yaak/src-web/lib/setupOrConfigureEncryption.tsx
2025-04-15 07:18:26 -07:00

33 lines
980 B
TypeScript

import { VStack } from '../components/core/Stacks';
import { WorkspaceEncryptionSetting } from '../components/WorkspaceEncryptionSetting';
import { activeWorkspaceMetaAtom } from '../hooks/useActiveWorkspace';
import { showDialog } from './dialog';
import { jotaiStore } from './jotai';
export function setupOrConfigureEncryption() {
setupOrConfigure();
}
export function withEncryptionEnabled(callback?: () => void) {
const workspaceMeta = jotaiStore.get(activeWorkspaceMetaAtom);
if (workspaceMeta?.encryptionKey != null) {
callback?.(); // Already set up
return;
}
setupOrConfigure(callback);
}
function setupOrConfigure(onEnable?: () => void) {
showDialog({
id: 'workspace-encryption',
title: 'Workspace Encryption',
size: 'md',
render: ({ hide }) => (
<VStack space={3} className="pb-2" alignItems="end">
<WorkspaceEncryptionSetting expanded onDone={hide} onEnabledEncryption={onEnable} />
</VStack>
),
});
}