From a3af9999762aa245f745a89209e2addd8766ede6 Mon Sep 17 00:00:00 2001 From: mkljczk Date: Sat, 21 Dec 2024 01:52:28 +0100 Subject: [PATCH] pl-fe: add subscribers visibility scope Signed-off-by: mkljczk --- packages/pl-api/package.json | 2 +- packages/pl-fe/package.json | 2 +- .../src/features/compose/components/privacy-dropdown.tsx | 8 ++++++++ .../src/features/status/components/status-type-icon.tsx | 2 ++ packages/pl-fe/src/locales/en.json | 3 +++ packages/pl-fe/yarn.lock | 8 ++++---- 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/packages/pl-api/package.json b/packages/pl-api/package.json index 7528c9fc3..de2f12932 100644 --- a/packages/pl-api/package.json +++ b/packages/pl-api/package.json @@ -1,6 +1,6 @@ { "name": "pl-api", - "version": "1.0.0-rc.5", + "version": "1.0.0-rc.6", "type": "module", "homepage": "https://github.com/mkljczk/pl-fe/tree/develop/packages/pl-api", "repository": { diff --git a/packages/pl-fe/package.json b/packages/pl-fe/package.json index 91b66ed45..2249780d9 100644 --- a/packages/pl-fe/package.json +++ b/packages/pl-fe/package.json @@ -101,7 +101,7 @@ "multiselect-react-dropdown": "^2.0.25", "mutative": "^1.1.0", "path-browserify": "^1.0.1", - "pl-api": "^1.0.0-rc.5", + "pl-api": "^1.0.0-rc.6", "postcss": "^8.4.49", "process": "^0.11.10", "punycode": "^2.1.1", diff --git a/packages/pl-fe/src/features/compose/components/privacy-dropdown.tsx b/packages/pl-fe/src/features/compose/components/privacy-dropdown.tsx index 535388782..ce361e236 100644 --- a/packages/pl-fe/src/features/compose/components/privacy-dropdown.tsx +++ b/packages/pl-fe/src/features/compose/components/privacy-dropdown.tsx @@ -28,6 +28,8 @@ const messages = defineMessages({ local_long: { id: 'privacy.local.long', defaultMessage: 'Only visible on your instance' }, list_short: { id: 'privacy.list.short', defaultMessage: 'List only' }, list_long: { id: 'privacy.list.long', defaultMessage: 'Visible to members of a list' }, + subscribers_short: { id: 'privacy.subscribers.short', defaultMessage: 'Subscribers-only' }, + subscribers_long: { id: 'privacy.subscribers.long', defaultMessage: 'Post to users subscribing you only' }, change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust post privacy' }, local: { id: 'privacy.local', defaultMessage: '{privacy} (local-only)' }, @@ -66,6 +68,12 @@ const getItems = (features: Features, lists: ReturnType, text: intl.formatMessage(messages.mutuals_only_short), meta: intl.formatMessage(messages.mutuals_only_long), } : undefined, + features.visibilitySubscribers ? { + icon: require('@tabler/icons/outline/coin.svg'), + value: 'subscribers', + text: intl.formatMessage(messages.subscribers_short), + meta: intl.formatMessage(messages.subscribers_long), + } : undefined, { icon: require('@tabler/icons/outline/mail.svg'), value: 'direct', diff --git a/packages/pl-fe/src/features/status/components/status-type-icon.tsx b/packages/pl-fe/src/features/status/components/status-type-icon.tsx index b89d53eda..2889b9066 100644 --- a/packages/pl-fe/src/features/status/components/status-type-icon.tsx +++ b/packages/pl-fe/src/features/status/components/status-type-icon.tsx @@ -17,6 +17,7 @@ const messages: Record = defineMessages({ local: { id: 'status.visibility.local', defaultMessage: 'The post is only visible to users on your instance' }, list: { id: 'status.visibility.list', defaultMessage: 'The post is only visible to the members of a list' }, list_named: { id: 'status.visibility.list.named', defaultMessage: 'The post is only visible to the members of a {name} list' }, + subscribers: { id: 'status.visibility.subscribers', defaultMessage: 'The post is only visible to users subscribing the author' }, }); const STATUS_TYPE_ICONS: Record = { @@ -25,6 +26,7 @@ const STATUS_TYPE_ICONS: Record = { mutuals_only: require('@tabler/icons/outline/users-group.svg'), local: require('@tabler/icons/outline/affiliate.svg'), list: require('@tabler/icons/outline/list.svg'), + subscribers: require('@tabler/icons/outline/coin.svg'), }; const StatusTypeIcon: React.FC = ({ status }) => { diff --git a/packages/pl-fe/src/locales/en.json b/packages/pl-fe/src/locales/en.json index 4e20aeab1..b57363023 100644 --- a/packages/pl-fe/src/locales/en.json +++ b/packages/pl-fe/src/locales/en.json @@ -1289,6 +1289,8 @@ "privacy.private.short": "Followers-only", "privacy.public.long": "Post to public timelines", "privacy.public.short": "Public", + "privacy.subscribers.long": "Post to users subscribing you only", + "privacy.subscribers.short": "Subscribers-only", "privacy.unlisted.long": "Do not post to public timelines", "privacy.unlisted.short": "Unlisted", "profile_dropdown.add_account": "Add an existing account", @@ -1540,6 +1542,7 @@ "status.visibility.local": "The post is only visible to users on your instance", "status.visibility.mutuals_only": "The post is only visible to people who mutually follow the author", "status.visibility.private": "The post is only visible to followers of the author", + "status.visibility.subscribers": "The post is only visible to users subscribing the author", "status.wrench": "Wrench reaction", "status_list.queue_label": "Click to see {count} new {count, plural, one {post} other {posts}}", "statuses.quote_tombstone": "Post is unavailable.", diff --git a/packages/pl-fe/yarn.lock b/packages/pl-fe/yarn.lock index e6613a651..927f44bb3 100644 --- a/packages/pl-fe/yarn.lock +++ b/packages/pl-fe/yarn.lock @@ -8216,10 +8216,10 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pl-api@^1.0.0-rc.5: - version "1.0.0-rc.5" - resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-1.0.0-rc.5.tgz#b82d27c7fc1a50a36bdd98a623b9a349de78c3e3" - integrity sha512-+FtJNGZvZEVaceMBTuXzRw/NnNbJypPJsCSPvonZNtIe9almSDfL3UGVZLgtERhXNjgH2ZxYWubfkb6d6ZaQjA== +pl-api@^1.0.0-rc.6: + version "1.0.0-rc.6" + resolved "https://registry.yarnpkg.com/pl-api/-/pl-api-1.0.0-rc.6.tgz#58e37a995f34dbad1ea92760ef13eb6563630ccd" + integrity sha512-1kTUowZcQnTbGQqK0XfTzbRRdN+mcHDFpbjwl9M6WqnWrOmekJxrBaQ/hnBprbkarDsm/EUun+BuTRFxUNDfvw== dependencies: blurhash "^2.0.5" http-link-header "^1.1.3"