diff options
| author | Adrien Hopkins <[email protected]> | 2025-10-18 20:53:47 -0500 |
|---|---|---|
| committer | Adrien Hopkins <[email protected]> | 2025-10-18 20:53:47 -0500 |
| commit | 56e45190fd535f5f6c06914a8b9985e07bd7458c (patch) | |
| tree | 94e2de847fd6386fd85e2c252976aa0fdff46ae3 | |
| parent | 38a691cd6004adde24c913f69b2bbd01b2541fb9 (diff) | |
| download | coinos-ui-56e45190fd535f5f6c06914a8b9985e07bd7458c.tar.gz coinos-ui-56e45190fd535f5f6c06914a8b9985e07bd7458c.zip | |
Add DM expiry UI
| -rw-r--r-- | src/routes/(app)/dm/[recipient]/+page.svelte | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/routes/(app)/dm/[recipient]/+page.svelte b/src/routes/(app)/dm/[recipient]/+page.svelte index e0702bc3..4f4d4061 100644 --- a/src/routes/(app)/dm/[recipient]/+page.svelte +++ b/src/routes/(app)/dm/[recipient]/+page.svelte @@ -20,6 +20,8 @@ let messageRumours = $state([]); let dates = $state([]); let warning = $state(undefined); + let expiryEnabled = $state(false); + let expiryDays = $state(7); const appendMultimap = (map: Map, key: string, value: object) => { if (map.has(key)) { @@ -110,18 +112,19 @@ }); const sendMessage = async (message: string) => { + const expiry = expiryEnabled ? expiryDays : null; let event1, event2; if (await window.nostr.getPublicKey() === user.pubkey) { event1 = await libnip17.createNIP17MessageNIP07( - message, user.pubkey, recipient.pubkey); + message, user.pubkey, recipient.pubkey, recipient.pubkey, expiry); event2 = await libnip17.createNIP17MessageNIP07( - message, user.pubkey, recipient.pubkey, user.pubkey); + message, user.pubkey, recipient.pubkey, user.pubkey, expiry); } else { const sk = await getPrivateKey(user); event1 = libnip17.createNIP17MessageSK( - message, sk, recipient.pubkey); + message, sk, recipient.pubkey, recipient.pubkey, expiry); event2 = libnip17.createNIP17MessageSK( - message, sk, recipient.pubkey, user.pubkey); + message, sk, recipient.pubkey, user.pubkey, expiry); } console.log(Date.now() / 1000); @@ -159,6 +162,19 @@ .warning { color: #ff7f00; } + + .inline { + white-space: nowrap; + } + + .short { + width: 6em; + height: 2em; + } + + .tiny { + width: 2em; + } </style> <div class="container"> @@ -189,6 +205,7 @@ <textarea id="message-contents" bind:value={text}></textarea> + <input type="checkbox" class="tiny" bind:checked={expiryEnabled}>Enable message expiry in <input type="number" class="short" bind:value={expiryDays} disabled={!expiryEnabled} min="1" step="1" max="99999"> days. <input id="send-message" type="button" class="btn" value="Send Message" on:click={async () => sendMessage(text)}> <em><p class="warning" bind:this={warning}></p></em> </div> |
