Work on making the Journal Entry saving better.

This commit is contained in:
Scott Idem
2025-05-08 19:37:15 -04:00
parent 0e249b2e6d
commit 8c81f6f65e
5 changed files with 437 additions and 133 deletions

View File

@@ -1,6 +1,7 @@
<script lang="ts">
// *** Import Svelte specific
import { goto } from '$app/navigation';
import { tick } from 'svelte';
// import { clipboard } from '@skeletonlabs/skeleton';
import { marked } from 'marked';
import {
@@ -71,6 +72,11 @@ let updated_idb: boolean = $state(true); // Updated in a separate browser sessio
// }
// );
if (!$journals_loc?.entry?.decrypt_kv) {
$journals_loc.entry.decrypt_kv = {};
$journals_loc.entry.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id] = null;
}
function not_obj(obj) {
if (obj == null) {
// null or undefined
@@ -82,27 +88,119 @@ function not_obj(obj) {
return Object.keys(obj).length === 0;
}
$effect(() => {
$effect(async () => {
// if (not_obj(orig_entry_obj) && not_obj(tmp_entry_obj) && $lq__journal_entry_obj && $lq__journal_entry_obj?.journal_entry_id) {
if (updated_obj && JSON.stringify(orig_entry_obj) === JSON.stringify($lq__journal_entry_obj)) {
console.log(`TEST: updated_obj but orig_entry_obj and $lq__journal_entry_obj still the same`, $lq__journal_entry_obj);
// orig_entry_obj = { ...$lq__journal_entry_obj };
// tmp_entry_obj = { ...$lq__journal_entry_obj };
// tmp_entry_obj_changed = false;
// if (updated_obj && JSON.stringify(orig_entry_obj) === JSON.stringify($lq__journal_entry_obj)) {
// console.log(`TEST: updated_obj but orig_entry_obj and $lq__journal_entry_obj still the same`, $lq__journal_entry_obj);
// // orig_entry_obj = { ...$lq__journal_entry_obj };
// // tmp_entry_obj = { ...$lq__journal_entry_obj };
// // tmp_entry_obj_changed = false;
// // updated_obj = false;
// // } else if (not_obj(orig_entry_obj) && $lq__journal_entry_obj) {
// // console.log('TEST: orig_entry_obj?', orig_entry_obj);
// // console.log('TEST: LQ Journal Entry object available', $lq__journal_entry_obj);
// // orig_entry_obj = { ...$lq__journal_entry_obj };
// // tmp_entry_obj = { ...$lq__journal_entry_obj };
// // tmp_entry_obj_changed = false;
// } else
// || (updated_obj && await $lq__journal_entry_obj.updated_on > orig_entry_obj?.updated_on)
// if (updated_obj && $lq__journal_entry_obj && JSON.stringify(orig_entry_obj) !== JSON.stringify($lq__journal_entry_obj)) {
// if (updated_obj && $lq__journal_entry_obj && $lq__journal_entry_obj?.updated_on > orig_entry_obj?.updated_on) {
if ($lq__journal_entry_obj && $lq__journal_entry_obj?.updated_on) {
console.log(`TEST: Journal Entry updated datetime changed`, $lq__journal_entry_obj);
// updated_obj = false;
// } else if (not_obj(orig_entry_obj) && $lq__journal_entry_obj) {
// console.log('TEST: orig_entry_obj?', orig_entry_obj);
// console.log('TEST: LQ Journal Entry object available', $lq__journal_entry_obj);
// orig_entry_obj = { ...$lq__journal_entry_obj };
// tmp_entry_obj = { ...$lq__journal_entry_obj };
// tmp_entry_obj_changed = false;
} else if (updated_obj && $lq__journal_entry_obj) {
console.log(`TEST: updated_obj and $lq__journal_entry_obj; setting orig_entry_obj and tmp_entry_obj`, $lq__journal_entry_obj);
orig_entry_obj = { ...$lq__journal_entry_obj };
tmp_entry_obj = { ...$lq__journal_entry_obj };
// if ($journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]) {
// if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted) {
// console.log('TEST: Decrypting the content...');
// tmp_entry_obj.content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
// tmp_entry_obj.content_md_html = handle_marked(tmp_entry_obj?.content);
// orig_entry_obj.content = await ae_util.decrypt_wrapper(orig_entry_obj?.content_encrypted, journal_key);
// orig_entry_obj.content_md_html = handle_marked(orig_entry_obj?.content);
// }
// if (!tmp_entry_obj?.history && tmp_entry_obj?.history_encrypted) {
// console.log('TEST: Decrypting the history...');
// tmp_entry_obj.history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
// tmp_entry_obj.history_md_html = handle_marked(tmp_entry_obj?.history);
// orig_entry_obj.history = await ae_util.decrypt_wrapper(orig_entry_obj?.history_encrypted, journal_key);
// orig_entry_obj.history_md_html = handle_marked(orig_entry_obj?.history);
// }
// }
tmp_entry_obj_changed = false;
updated_obj = false;
// updated_obj = false;
updated_idb = false;
} else if ((updated_obj && await $lq__journal_entry_obj) ) {
console.log(`TEST: Journal Entry updated and changed`, $lq__journal_entry_obj);
updated_obj = false;
orig_entry_obj = { ...$lq__journal_entry_obj };
tmp_entry_obj = { ...$lq__journal_entry_obj };
if ($journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]) {
if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted) {
console.log('TEST: Decrypting the content...');
tmp_entry_obj.content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
tmp_entry_obj.content_md_html = handle_marked(tmp_entry_obj?.content);
orig_entry_obj.content = await ae_util.decrypt_wrapper(orig_entry_obj?.content_encrypted, journal_key);
orig_entry_obj.content_md_html = handle_marked(orig_entry_obj?.content);
}
if (!tmp_entry_obj?.history && tmp_entry_obj?.history_encrypted) {
console.log('TEST: Decrypting the history...');
tmp_entry_obj.history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
tmp_entry_obj.history_md_html = handle_marked(tmp_entry_obj?.history);
orig_entry_obj.history = await ae_util.decrypt_wrapper(orig_entry_obj?.history_encrypted, journal_key);
orig_entry_obj.history_md_html = handle_marked(orig_entry_obj?.history);
}
}
tmp_entry_obj_changed = false;
// updated_obj = false;
updated_idb = false;
// } else if ((updated_obj && await $lq__journal_entry_obj) || ($lq__journal_entry_obj?.updated_on > orig_entry_obj?.updated_on)) {
// // updated_obj = false;
// console.log(`TEST: updated_obj and $lq__journal_entry_obj; setting orig_entry_obj and tmp_entry_obj`, $lq__journal_entry_obj);
// orig_entry_obj = { ...$lq__journal_entry_obj };
// tmp_entry_obj = { ...$lq__journal_entry_obj };
// if ($journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]) {
// if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted) {
// console.log('TEST: Decrypting the content...');
// tmp_entry_obj.content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
// tmp_entry_obj.content_md_html = handle_marked(tmp_entry_obj?.content);
// orig_entry_obj.content = await ae_util.decrypt_wrapper(orig_entry_obj?.content_encrypted, journal_key);
// orig_entry_obj.content_md_html = handle_marked(orig_entry_obj?.content);
// }
// if (!tmp_entry_obj?.history && tmp_entry_obj?.history_encrypted) {
// console.log('TEST: Decrypting the history...');
// tmp_entry_obj.history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
// tmp_entry_obj.history_md_html = handle_marked(tmp_entry_obj?.history);
// orig_entry_obj.history = await ae_util.decrypt_wrapper(orig_entry_obj?.history_encrypted, journal_key);
// orig_entry_obj.history_md_html = handle_marked(orig_entry_obj?.history);
// }
// }
// console.log('TEST: tmp_entry_obj:', tmp_entry_obj);
// tmp_entry_obj_changed = false;
// updated_obj = false;
// updated_idb = false;
} else if (
!updated_obj
&& JSON.stringify(orig_entry_obj) !== JSON.stringify($lq__journal_entry_obj)
@@ -132,9 +230,15 @@ $effect(() => {
console.log('TEST: tmp_entry_obj and orig_entry_obj available; marking tmp_entry_obj as changed');
// tmp_entry_obj_changed = JSON.stringify(tmp_entry_obj) != JSON.stringify($lq__journal_entry_obj);
// tmp_entry_obj_changed = JSON.stringify(tmp_entry_obj) != JSON.stringify(orig_entry_obj);
// if (!decrypted_content) {
tmp_entry_obj_changed = true;
// if (!tmp_entry_obj?.private ) {
// tmp_entry_obj_changed = true;
// } else
// if (tmp_entry_obj?.private && tmp_entry_obj?.content) {
// tmp_entry_obj_changed = false;
// } else {
// tmp_entry_obj_changed = true;
// }
tmp_entry_obj_changed = true;
} else {
// console.log('TEST: tmp_entry_obj == orig_entry_obj');
tmp_entry_obj_changed = false;
@@ -149,7 +253,7 @@ async function update_journal_entry() {
return;
}
// log_lvl = 1;
log_lvl = 1;
let data_kv: key_val = {
alert: tmp_entry_obj?.alert,
@@ -204,15 +308,21 @@ async function update_journal_entry() {
let { left_over_string, cut_out_string } = handle_cut_string(tmp_entry_obj?.content);
// Need to decrypt the current content and current history. Assume the history has not been decrypted yet.
let content_enc_combined_data = await handle_encrypt_string(left_over_string, journal_key)
let content_enc_combined_data = await ae_util.encrypt_wrapper(left_over_string, journal_key);
if (log_lvl) {
console.log('TEST: Encrypted string:', content_enc_combined_data);
}
// return content_enc_combined_data;
// let content_enc_combined_data = await handle_encrypt_string(left_over_string, journal_key)
data_kv.content_encrypted = content_enc_combined_data;
data_kv.content = null;
decrypted_content = '';
// decrypted_content = '';
if (log_lvl) {
console.log('TEST: Decrypting the history before saving it...');
}
decrypted_history = await handle_decrypt_string(tmp_entry_obj?.history_encrypted, journal_key);
decrypted_history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
if (tmp_entry_obj?.history) {
data_kv.history = tmp_entry_obj?.history ?? '' + '\n' + decrypted_history + '\n' + cut_out_string;
@@ -224,7 +334,7 @@ async function update_journal_entry() {
if (log_lvl) {
console.log('TEST: Encrypting the history before saving it...');
}
let history_enc_combined_data = await handle_encrypt_string(data_kv.history, journal_key);
let history_enc_combined_data = await ae_util.encrypt_wrapper(data_kv.history, journal_key);
data_kv.history_encrypted = history_enc_combined_data;
data_kv.history = null;
@@ -281,56 +391,102 @@ async function update_journal_entry() {
// }
// }
if (tmp_entry_obj?.content && tmp_entry_obj?.private) {
// // console.log('TEST: Saving encrypted content', tmp_entry_obj?.content);
// content = tmp_entry_obj?.content;
// // console.log('TEST: journal_key', journal_key);
// if (tmp_entry_obj?.content && tmp_entry_obj?.private) {
// // // console.log('TEST: Saving encrypted content', tmp_entry_obj?.content);
// // content = tmp_entry_obj?.content;
// // // console.log('TEST: journal_key', journal_key);
// // // Encrypt the content
// // let encrypted_base64 = await ae_util.encrypt_content(content, journal_key);
// // encrypted_base64_string = encrypted_base64.base64;
// // encryption_iv = encrypted_base64.iv;
// // console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_string}`);
// // // // Encrypt the content
// // // let encrypted_base64 = await ae_util.encrypt_content(content, journal_key);
// // // encrypted_base64_string = encrypted_base64.base64;
// // // encryption_iv = encrypted_base64.iv;
// // // console.log(`IV: ${encryption_iv}; Encrypted: ${encrypted_base64_string}`);
// // // Combine the IV and encrypted content
// // const combined_data = Array.from(encryption_iv).map(byte => byte.toString(16).padStart(2, '0')).join('') + ':' + encrypted_base64_string;
// // // // Combine the IV and encrypted content
// // // const combined_data = Array.from(encryption_iv).map(byte => byte.toString(16).padStart(2, '0')).join('') + ':' + encrypted_base64_string;
// let combined_data = await handle_encrypt_string(content, journal_key);
// // let combined_data = await handle_encrypt_string(content, journal_key);
// data_kv.content_encrypted = combined_data;
// data_kv.content = null;
// decrypted_content = '';
} else if (decrypted_content && !tmp_entry_obj?.private) {
// console.log('TEST: Saving decrypted content', decrypted_content);
content = decrypted_content;
// // data_kv.content_encrypted = combined_data;
// // data_kv.content = null;
// // decrypted_content = '';
// } else if (decrypted_content && !tmp_entry_obj?.private) {
// // console.log('TEST: Saving decrypted content', decrypted_content);
// content = decrypted_content;
data_kv.content = content;
decrypted_content = '';
} else if (tmp_entry_obj?.content_encrypted && !tmp_entry_obj?.private) {
console.log('TEST: Decrypting the content before saving it...');
decrypted_content = await handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key);
data_kv.content = decrypted_content; // tmp_entry_obj.content
decrypted_content = '';
// return false;
} else {
console.log('TEST: Saving content without encryption', tmp_entry_obj?.content);
// Clear content_encrypted again. Just in case.
// data_kv.content_encrypted = null;
decrypted_content = '';
// tmp_entry_obj.content_encrypted = null;
}
// data_kv.content = content;
// decrypted_content = '';
// } else if (tmp_entry_obj?.content_encrypted && !tmp_entry_obj?.private) {
// console.log('TEST: Decrypting the content before saving it...');
// decrypted_content = await handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key);
// data_kv.content = decrypted_content; // tmp_entry_obj.content
// decrypted_content = '';
// // return false;
// } else {
// console.log('TEST: Saving content without encryption', tmp_entry_obj?.content);
// // Clear content_encrypted again. Just in case.
// // data_kv.content_encrypted = null;
// decrypted_content = '';
// // tmp_entry_obj.content_encrypted = null;
// }
// Call API to save the content
try {
await journals_func.update_ae_obj__journal_entry({
const response = await journals_func.update_ae_obj__journal_entry({
api_cfg: $ae_api,
journal_entry_id: $lq__journal_entry_obj?.journal_entry_id,
data_kv: data_kv,
log_lvl: 1,
});
console.log('Journal entry updated successfully:', response);
// tick();
updated_obj = true;
updated_idb = false;
console.log('Journal entry updated successfully!');
// tick();
// orig_entry_obj = { ...await $lq__journal_entry_obj };
// tmp_entry_obj = { ...await $lq__journal_entry_obj };
// if ($journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]) {
// if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted) {
// console.log('TEST: Decrypting the content...');
// tmp_entry_obj.content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
// tmp_entry_obj.content_md_html = handle_marked(tmp_entry_obj?.content);
// orig_entry_obj.content = await ae_util.decrypt_wrapper(orig_entry_obj?.content_encrypted, journal_key);
// orig_entry_obj.content_md_html = handle_marked(orig_entry_obj?.content);
// }
// if (!tmp_entry_obj?.history && tmp_entry_obj?.history_encrypted) {
// console.log('TEST: Decrypting the history...');
// tmp_entry_obj.history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
// tmp_entry_obj.history_md_html = handle_marked(tmp_entry_obj?.history);
// orig_entry_obj.history = await ae_util.decrypt_wrapper(orig_entry_obj?.history_encrypted, journal_key);
// orig_entry_obj.history_md_html = handle_marked(orig_entry_obj?.history);
// }
// }
// console.log('TEST: tmp_entry_obj:', tmp_entry_obj);
// updated_obj = true;
// updated_idb = false;
// journals_func.update_ae_obj__journal_entry({
// api_cfg: $ae_api,
// journal_entry_id: $lq__journal_entry_obj?.journal_entry_id,
// data_kv: data_kv,
// log_lvl: 1,
// })
// .then((response) => {
// console.log('HERE: response', response);
// updated_obj = true;
// updated_idb = false;
// console.log('Journal entry updated successfully!');
// })
// tick();
} catch (error) {
console.error('Error updating journal entry:', error);
alert('Failed to update journal entry.');
@@ -620,7 +776,23 @@ function handle_cut_string(old_string: string) {
return { left_over_string, cut_out_string };
}
function handle_marked(text_string: string) {
if (!text_string) {
console.log('TEST: No text string provided');
return '';
}
// let cleaned_string = text_string.replace(/<[^>]*>/g, ''); // Remove HTML tags
let cleaned_string = text_string.replace(/^[\u200B\u200C\u200D\u200E\u200F\uFEFF]/,"");
// let marked_string = marked.parse(text_string);
let marked_string = marked.parse(cleaned_string, {
// gfm: true,
// breaks: true,
// headerIds: false,
// mangle: false,
// xhtml: true,
});
return marked_string;
}
</script>
@@ -1270,6 +1442,7 @@ function handle_cut_string(old_string: string) {
// Setting private to false will cause the update_journal_entry() function to decrypt the content. This will also copy it to tmp_entry_obj.content.
tmp_entry_obj.private = false;
// tmp_entry_obj.
// handle_decrypt_content();
update_journal_entry();
} else {
@@ -1299,28 +1472,50 @@ function handle_cut_string(old_string: string) {
decrypted_content = '';
// tmp_entry_obj.content = null;
} else if (tmp_entry_obj?.private && tmp_entry_obj?.content_encrypted) {
if (confirm('Are you sure you want to decrypt the content to view/edit?')) {
// trigger_decrypt = true;
// handle_decrypt_content();
// handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key).then((result) => {
// decrypted_content = result;
// console.log('TEST: Decrypted content:', decrypted_content);
// });
decrypted_content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
if (!$journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]) {
if (confirm('Are you sure you want to decrypt the content to view/edit?')) {
$journals_loc.entry.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id] = true;
$journals_loc.entry.edit_kv[$lq__journal_entry_obj?.journal_entry_id] = 'current';
// decrypted_content = await handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key);
tmp_entry_obj.content = decrypted_content;
console.log('TEST: Decrypted content:', decrypted_content);
if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted) {
console.log('TEST: Decrypting the content...');
tmp_entry_obj.content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
tmp_entry_obj.content_md_html = handle_marked(tmp_entry_obj?.content);
}
if (!tmp_entry_obj?.history && tmp_entry_obj?.history_encrypted) {
console.log('TEST: Decrypting the history...');
tmp_entry_obj.history = await ae_util.decrypt_wrapper(tmp_entry_obj?.history_encrypted, journal_key);
tmp_entry_obj.history_md_html = handle_marked(tmp_entry_obj?.history);
}
// trigger_decrypt = true;
// handle_decrypt_content();
// handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key).then((result) => {
// decrypted_content = result;
// console.log('TEST: Decrypted content:', decrypted_content);
// });
// decrypted_content = await ae_util.decrypt_wrapper(tmp_entry_obj?.content_encrypted, journal_key);
// // decrypted_content = await handle_decrypt_string(tmp_entry_obj?.content_encrypted, journal_key);
// tmp_entry_obj.content = decrypted_content;
// console.log('TEST: Decrypted content:', decrypted_content);
} else {
return false;
}
} else {
return false;
$journals_loc.entry.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id] = false;
$journals_loc.entry.edit_kv[$lq__journal_entry_obj?.journal_entry_id] = false;
tmp_entry_obj.content = null;
tmp_entry_obj.content_md_html = null;
tmp_entry_obj.history = null;
tmp_entry_obj.history_md_html = null;
}
}
}}
class:hidden={!$lq__journal_entry_obj?.private}
class:hidden={!$lq__journal_entry_obj?.private || !tmp_entry_obj?.content_encrypted}
class="btn-icon btn-icon-sm variant-soft-secondary hover:variant-filled-secondary transition"
title="Toggle viewing/editing of private encrypted content"
>
{#if $lq__journal_entry_obj?.private && decrypted_content}
{#if $lq__journal_entry_obj?.private && tmp_entry_obj?.content}
<LockKeyholeOpen strokeWidth="2.5" color="red" />
{:else if $lq__journal_entry_obj?.private && tmp_entry_obj?.content_encrypted}
<LockKeyhole strokeWidth="2.5" color="green" />
@@ -1588,7 +1783,19 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
"
id="rendered_journal_entry_content_{$lq__journal_entry_obj?.journal_entry_id}"
>
{#if decrypted_content?.length}
{#if tmp_entry_obj.content_md_html}
{@html tmp_entry_obj.content_md_html}
{:else if tmp_entry_obj?.content_encrypted && tmp_entry_obj?.private}
<div class="text-sm text-gray-500">
<div class=""><LockKeyhole strokeWidth="1.5" color="green" class="inline-block" /> Encrypted:</div>
<div class="max-w-screen-md overflow-auto wrap break-all">
{tmp_entry_obj?.content_encrypted}
</div>
</div>
{/if}
<!-- {#if decrypted_content?.length}
{@html decrypted_content}
{:else if $lq__journal_entry_obj?.content_encrypted}
<span class="text-sm text-gray-500 break-all">
@@ -1596,7 +1803,7 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
</span>
{:else}
{@html $lq__journal_entry_obj?.content_md_html}
{/if}
{/if} -->
</article>
<!-- {@html async () => {
const { base64, iv } = await encrypt_content(content, journal_key);
@@ -1615,7 +1822,7 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
<!-- && !($lq__journal_entry_obj?.content_encrypted && decrypted_content)) -->
<!-- class="flex flex-row flex-wrap gap-1 items-center justify-center w-full max-w-sm" -->
{#if ($lq__journal_entry_obj?.content_encrypted && !decrypted_content)}
{#if (!tmp_entry_obj?.content && tmp_entry_obj?.content_encrypted)}
<div
class="
flex-grow
@@ -1659,6 +1866,7 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
h-full max-h-full
w-full min-w-full max-w-6xl"
> -->
<!-- disabled={tmp_entry_obj?.private && !$journals_loc?.entry?.decrypt_kv[$lq__journal_entry_obj?.journal_entry_id]} -->
<textarea
bind:value={tmp_entry_obj.content}
ondblclick={() => {
@@ -1668,7 +1876,7 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
// $journals_loc.entry.edit_kv[$lq__journal_entry_obj?.journal_entry_id] = $journals_loc.entry.edit;
// }
}}
disabled={tmp_entry_obj.content_encrypted && !decrypted_content}
class="
flex-grow
flex-shrink-0
@@ -1782,10 +1990,13 @@ tabindex={$ae_loc.edit_mode ? 0 : -1} -->
{/if}
<!-- <div class="max-w-screen-md overflow-auto">
aaaa
{tmp_entry_obj?.content ?? '-- not set --'}
<hr>
{tmp_entry_obj?.content_encrypted ?? '-- not set --'}
zzzz
</div> -->