From 5710379da3dc2283c5fc7a1a28595f0f14a0bf89 Mon Sep 17 00:00:00 2001 From: nick-funk Date: Fri, 29 Nov 2024 10:23:01 -0700 Subject: [PATCH] a bit more plumbing bluesky through types and resolvers it's a bit worrying just how many places you need to update to add one media type :sweat_smile: --- client/src/core/client/admin/test/fixtures.ts | 1 + .../EditCommentForm/EditCommentMutation.ts | 4 ++++ .../MediaConfirmation/MediaConfirmationIcon.tsx | 4 ++++ .../ui/components/icons/BlueskyLogoIcon.tsx | 15 +++++++++++++++ .../src/core/client/ui/components/icons/index.ts | 1 + locales/en-US/admin.ftl | 1 + .../server/graph/resolvers/MediaConfiguration.ts | 1 + 7 files changed, 27 insertions(+) create mode 100644 client/src/core/client/ui/components/icons/BlueskyLogoIcon.tsx diff --git a/client/src/core/client/admin/test/fixtures.ts b/client/src/core/client/admin/test/fixtures.ts index 771fb3c95b..c0eed5f45b 100644 --- a/client/src/core/client/admin/test/fixtures.ts +++ b/client/src/core/client/admin/test/fixtures.ts @@ -209,6 +209,7 @@ export const settings = createFixture({ premoderateSuspectWords: false, media: { twitter: { enabled: false }, + bluesky: { enabled: false }, gifs: { enabled: false }, youtube: { enabled: false }, external: { enabled: false }, diff --git a/client/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts b/client/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts index 35fd1cc387..eba246f43a 100644 --- a/client/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts +++ b/client/src/core/client/stream/tabs/Comments/Comment/EditCommentForm/EditCommentMutation.ts @@ -43,6 +43,10 @@ const mutation = graphql` url width } + ... on BlueskyMedia { + url + width + } ... on YouTubeMedia { url width diff --git a/client/src/core/client/stream/tabs/Comments/Comment/MediaConfirmation/MediaConfirmationIcon.tsx b/client/src/core/client/stream/tabs/Comments/Comment/MediaConfirmation/MediaConfirmationIcon.tsx index b2769f66e6..4c68554d53 100644 --- a/client/src/core/client/stream/tabs/Comments/Comment/MediaConfirmation/MediaConfirmationIcon.tsx +++ b/client/src/core/client/stream/tabs/Comments/Comment/MediaConfirmation/MediaConfirmationIcon.tsx @@ -2,6 +2,7 @@ import React, { FunctionComponent } from "react"; import { MediaLink } from "coral-common/common/lib/helpers/findMediaLinks"; import { + BlueskyLogoIcon, ImageFileLandscapeIcon, SvgIcon, VideoPlayerIcon, @@ -20,6 +21,9 @@ const MediaConfirmationIcon: FunctionComponent = ({ media }) => { {media.type === "twitter" && ( )} + {media.type === "bsky" && ( + + )} ); }; diff --git a/client/src/core/client/ui/components/icons/BlueskyLogoIcon.tsx b/client/src/core/client/ui/components/icons/BlueskyLogoIcon.tsx new file mode 100644 index 0000000000..b97de311ad --- /dev/null +++ b/client/src/core/client/ui/components/icons/BlueskyLogoIcon.tsx @@ -0,0 +1,15 @@ +import React, { FunctionComponent } from "react"; + +const BlueskyLogoIcon: FunctionComponent = () => { + // https://www.streamlinehq.com/icons/streamline-regular/logos/social-medias/x-logo-twitter + return ( + + + + ); +}; + +export default BlueskyLogoIcon; diff --git a/client/src/core/client/ui/components/icons/index.ts b/client/src/core/client/ui/components/icons/index.ts index 902e8e1d22..87cd4cbc4a 100644 --- a/client/src/core/client/ui/components/icons/index.ts +++ b/client/src/core/client/ui/components/icons/index.ts @@ -92,3 +92,4 @@ export { default as VideoPlayerIcon } from "./VideoPlayerIcon"; export { default as ViewIcon } from "./ViewIcon"; export { default as ViewOffIcon } from "./ViewOffIcon"; export { default as XLogoTwitterIcon } from "./XLogoTwitterIcon"; +export { default as BlueskyLogoIcon } from "./BlueskyLogoIcon"; diff --git a/locales/en-US/admin.ftl b/locales/en-US/admin.ftl index b3e8d9f687..2bd1aa61e0 100644 --- a/locales/en-US/admin.ftl +++ b/locales/en-US/admin.ftl @@ -435,6 +435,7 @@ configure-general-embedLinks-desc = configure-general-embedLinks-description = Allow commenters to add a YouTube video, X post or GIF's to the end of their comment configure-general-embedLinks-enableTwitterEmbeds = Allow X post embeds +configure-general-embedLinks-enableBlueskeyEmbeds = Allow Bluesky post embeds configure-general-embedLinks-enableYouTubeEmbeds = Allow YouTube embeds configure-general-embedLinks-enableGifs = Allow GIFs configure-general-embedLinks-enableExternalEmbeds = Enable external media diff --git a/server/src/core/server/graph/resolvers/MediaConfiguration.ts b/server/src/core/server/graph/resolvers/MediaConfiguration.ts index 162fc66bfd..125f607120 100644 --- a/server/src/core/server/graph/resolvers/MediaConfiguration.ts +++ b/server/src/core/server/graph/resolvers/MediaConfiguration.ts @@ -7,6 +7,7 @@ export const MediaConfiguration: GQLMediaConfigurationTypeResolver< Partial > = { twitter: ({ twitter = {} }) => twitter, + bluesky: ({ bluesky = {} }) => bluesky, youtube: ({ youtube = {} }) => youtube, gifs: ({ gifs = {} }) => gifs, external: () => ({}),