Skip to content
Snippets Groups Projects
Encryption.js 1.52 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React from 'react';
    
    import { Text, Button } from 'loot-design/src/components/common';
    import { colors } from 'loot-design/src/style';
    
    import { ButtonSetting } from './UI';
    
    export default function EncryptionSettings({ prefs, pushModal }) {
      function onChangeKey() {
        pushModal('create-encryption-key', { recreate: true });
      }
    
      return prefs.encryptKeyId ? (
        <ButtonSetting
          button={<Button onClick={onChangeKey}>Generate new key</Button>}
        >
          <Text>
            <Text style={{ color: colors.g4, fontWeight: 600 }}>
              End-to-end Encryption is turned on.
            </Text>{' '}
            Your data is encrypted with a key that only you have before sending it
            out to the cloud . Local data remains unencrypted so if you forget your
            password you can re-encrypt it.
          </Text>
        </ButtonSetting>
      ) : (
        <ButtonSetting
          button={
            <Button
              onClick={() => {
                alert(
                  'End-to-end encryption is not supported on the self-hosted service yet'
                );
                // pushModal('create-encryption-key');
              }}
            >
              Enable encryption
            </Button>
          }
        >
          <Text>
            <strong>End-to-end encryption</strong> is not enabled. Any data on our
            servers is still stored safely and securely, but it's not end-to-end
            encrypted which means we have the ability to read it (but we won't). If
            you want, you can use a password to encrypt your data on our servers.
          </Text>
        </ButtonSetting>
      );
    }