From e74b088e3795fb3774aa2150b3fd6797f422cfeb Mon Sep 17 00:00:00 2001 From: ari melody Date: Mon, 8 Jul 2024 10:28:38 +0100 Subject: [PATCH] added visibility function to compose box + reply ID --- src/lib/app.css | 4 +- src/lib/ui/Composer.svelte | 67 ++++++++++++++++++++++++++----- src/lib/ui/post/PostHeader.svelte | 6 --- 3 files changed, 60 insertions(+), 17 deletions(-) diff --git a/src/lib/app.css b/src/lib/app.css index d59a3da..d6656b4 100644 --- a/src/lib/app.css +++ b/src/lib/app.css @@ -76,7 +76,7 @@ main { img.emoji { height: 1.2em; - margin: -.1em 0; + margin: -.2em 0; } .throb { @@ -90,4 +90,4 @@ img.emoji { to { opacity: 1; } -} \ No newline at end of file +} diff --git a/src/lib/ui/Composer.svelte b/src/lib/ui/Composer.svelte index 8cddfb7..60e18ed 100644 --- a/src/lib/ui/Composer.svelte +++ b/src/lib/ui/Composer.svelte @@ -14,11 +14,18 @@ import WarningIcon from '@cf/icons/warning.svg'; import PublicVisIcon from '@cf/icons/public.svg'; + import UnlistedVisIcon from '@cf/icons/unlisted.svg'; + import FollowersVisIcon from '@cf/icons/followers.svg'; + import PrivateVisIcon from '@cf/icons/dm.svg'; + + export let reply_id; let content_warning = "" let content = ""; // let media_ids = []; let show_cw = false; + let visibility = "Public"; + const placeholders = [ "What's cooking, $1?", "Speak your mind!", @@ -33,12 +40,28 @@ async function buildPost() { let postdata = {} - if(show_cw) { - postdata.spoiler_text = content_warning; - } - if(!content) return; + if (!content) return; postdata.status = content; + switch (visibility) { + case "Public": + postdata.visibility = "public"; + break; + case "Unlisted": + postdata.visibility = "unlisted"; + break; + case "Followers only": + postdata.visibility = "private"; + break; + case "Private": + postdata.visibility = "direct"; + break; + } + if (show_cw) { + postdata.spoiler_text = content_warning; + postdata.sensitive = true; + } + if (reply_id) postdata.in_reply_to_id = reply_id; let new_post = await api.createPost($server.host, $app.token, postdata); let new_post_parsed = await parsePost(new_post); @@ -46,6 +69,23 @@ timeline.update(current => [new_post_parsed, ...current]); dispatch("compose_finished") } + + function cycleVisibility() { + switch (visibility) { + case "Public": + visibility = "Unlisted"; + break; + case "Unlisted": + visibility = "Followers only"; + break; + case "Followers only": + visibility = "Private"; + break; + case "Private": + visibility = "Public"; + break; + } + }
@@ -55,22 +95,31 @@
-
-
{#if show_cw} - + {/if}