From 33c8142eda84d4b922bd5585f7a1b7a8fc176971 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 24 Oct 2024 11:02:16 -0700 Subject: [PATCH] Add show_media settings --- src/app/commands.ts | 8 +++---- src/app/components/ChannelCompose.svelte | 1 - src/app/components/Content.svelte | 6 ++--- src/app/state.ts | 4 ++++ src/lib/components/FieldInline.svelte | 6 ++--- src/routes/discover/+layout.svelte | 0 src/routes/settings/+page.svelte | 29 ++++++++++++++++-------- 7 files changed, 34 insertions(+), 20 deletions(-) delete mode 100644 src/routes/discover/+layout.svelte diff --git a/src/app/commands.ts b/src/app/commands.ts index 16dd492b..726e2095 100644 --- a/src/app/commands.ts +++ b/src/app/commands.ts @@ -147,7 +147,7 @@ export const broadcastUserData = async (relays: string[]) => { export const addSpaceMembership = async (url: string) => { const list = get(userMembership) || makeList({kind: MEMBERSHIPS}) const event = await addToListPublicly(list, ["r", url]).reconcile(nip44EncryptToSelf) - const relays = [...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)] + const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)]) return publishThunk({event, relays}).result } @@ -156,7 +156,7 @@ export const removeSpaceMembership = async (url: string) => { const list = get(userMembership) || makeList({kind: MEMBERSHIPS}) const pred = (t: string[]) => t[t[0] === "r" ? 1 : 2] === url const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf) - const relays = [...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)] + const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)]) return publishThunk({event, relays}).result } @@ -164,7 +164,7 @@ export const removeSpaceMembership = async (url: string) => { export const addRoomMembership = async (url: string, room: string) => { const list = get(userMembership) || makeList({kind: MEMBERSHIPS}) const event = await addToListPublicly(list, tagRoom(room, url)).reconcile(nip44EncryptToSelf) - const relays = [...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)] + const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)]) return publishThunk({event, relays}).result } @@ -173,7 +173,7 @@ export const removeRoomMembership = async (url: string, room: string) => { const list = get(userMembership) || makeList({kind: MEMBERSHIPS}) const pred = (t: string[]) => equals(tagRoom(room, url), t) const event = await removeFromListByPredicate(list, pred).reconcile(nip44EncryptToSelf) - const relays = [...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)] + const relays = uniq([...ctx.app.router.WriteRelays().getUrls(), ...getRelayTagValues(event.tags)]) return publishThunk({event, relays}).result } diff --git a/src/app/components/ChannelCompose.svelte b/src/app/components/ChannelCompose.svelte index f572bd96..f0b3a536 100644 --- a/src/app/components/ChannelCompose.svelte +++ b/src/app/components/ChannelCompose.svelte @@ -29,7 +29,6 @@ getEditorOptions({submit, loading, getPubkeyHints, submitOnEnter: true, autofocus: true}), ) - console.log($editor, content) $editor.commands.setContent(content) }) diff --git a/src/app/components/Content.svelte b/src/app/components/Content.svelte index 2b7012b6..9a600318 100644 --- a/src/app/components/Content.svelte +++ b/src/app/components/Content.svelte @@ -28,7 +28,7 @@ import ContentQuote from "@app/components/ContentQuote.svelte" import ContentTopic from "@app/components/ContentTopic.svelte" import ContentMention from "@app/components/ContentMention.svelte" - import {entityLink, userSettings} from "@app/state" + import {entityLink, userSettingValues} from "@app/state" export let event export let minLength = 500 @@ -70,7 +70,7 @@ } let warning = - $userSettings?.values.hide_sensitive && event.tags.find(nthEq(0, "content-warning"))?.[1] + $userSettingValues.hide_sensitive && event.tags.find(nthEq(0, "content-warning"))?.[1] $: shortContent = showEntire ? fullContent @@ -106,7 +106,7 @@ {:else if isCashu(parsed) || isInvoice(parsed)} {:else if isLink(parsed)} - {#if isStartOrEnd(i) && !hideMedia} + {#if isStartOrEnd(i) && !hideMedia && $userSettingValues.show_media} {:else} diff --git a/src/app/state.ts b/src/app/state.ts index 81a3070b..3450a1b5 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -256,11 +256,13 @@ export const SETTINGS = 38489 export type Settings = { event: TrustedEvent values: { + show_media: boolean hide_sensitive: boolean } } export const defaultSettings = { + show_media: true, hide_sensitive: true, } @@ -499,6 +501,8 @@ export const userSettings = withGetter( }), ) +export const userSettingValues = derived(userSettings, $s => $s?.values || defaultSettings) + export const userMembership = withGetter( derived([pubkey, membershipByPubkey], ([$pubkey, $membershipByPubkey]) => { if (!$pubkey) return undefined diff --git a/src/lib/components/FieldInline.svelte b/src/lib/components/FieldInline.svelte index 4dae4a1d..7f72b649 100644 --- a/src/lib/components/FieldInline.svelte +++ b/src/lib/components/FieldInline.svelte @@ -1,12 +1,12 @@ -
+
-
+
{#if $$slots.info} -

+

{/if} diff --git a/src/routes/discover/+layout.svelte b/src/routes/discover/+layout.svelte deleted file mode 100644 index e69de29b..00000000 diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index 6d92e080..b66a0684 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -7,12 +7,11 @@ import Button from "@lib/components/Button.svelte" import ProfileMultiSelect from "@app/components/ProfileMultiSelect.svelte" import {pushToast} from "@app/toast" - import {SETTINGS, PLATFORM_NAME, userSettings} from "@app/state" - - const settings = {...$userSettings?.values} + import {SETTINGS, PLATFORM_NAME, userSettingValues} from "@app/state" const reset = () => { mutedPubkeys = getPubkeyTagValues(getListTags($userMutes)) + settings = {...$userSettingValues} } const onSubmit = async () => { @@ -31,17 +30,12 @@ pushToast({message: "Your settings have been saved!"}) } + let settings = {...$userSettingValues} let mutedPubkeys = getPubkeyTagValues(getListTags($userMutes))
- -

Muted Accounts

-
- -
-

Hide sensitive content?

+ +

Show media?

+ +

+ Use this to disable link previews and image rendering. +

+
+ +

Muted Accounts

+
+ +
+