From 6ef5f4a02b8a7444233ad9bf07b21da77b57342f Mon Sep 17 00:00:00 2001 From: celine Date: Fri, 16 Jan 2026 16:24:45 -0500 Subject: [PATCH] pretty up the cover image button --- components/Blocks/ImageBlock.tsx | 53 ++++++++++++++++++---------- components/Icons/ImageCoverImage.tsx | 20 +++++++++++ components/Toolbar/ImageToolbar.tsx | 9 +++-- 3 files changed, 60 insertions(+), 22 deletions(-) diff --git a/components/Blocks/ImageBlock.tsx b/components/Blocks/ImageBlock.tsx index 8623be0b..68233afc 100644 --- a/components/Blocks/ImageBlock.tsx +++ b/components/Blocks/ImageBlock.tsx @@ -19,7 +19,16 @@ import { set } from "colorjs.io/fn"; import { ImageAltSmall } from "components/Icons/ImageAlt"; import { useLeafletPublicationData } from "components/PageSWRDataProvider"; import { useSubscribe } from "src/replicache/useSubscribe"; -import { ImageCoverImage } from "components/Icons/ImageCoverImage"; +import { + ImageCoverImage, + ImageCoverImageRemove, +} from "components/Icons/ImageCoverImage"; +import { + ButtonPrimary, + ButtonSecondary, + ButtonTertiary, +} from "components/Buttons"; +import { CheckTiny } from "components/Icons/CheckTiny"; export function ImageBlock(props: BlockProps & { preview?: boolean }) { let { rep } = useReplicache(); @@ -198,32 +207,38 @@ const CoverImageButton = (props: { entityID: string }) => { ); // Only show if focused, in a publication, has write permissions, and no cover image is set - if ( - !isFocused || - !pubData?.publications || - !entity_set.permissions.write || - coverImage - ) + if (!isFocused || !pubData?.publications || !entity_set.permissions.write) return null; - - return ( -
- -
+ Remove Cover Image + + + ); + return ( + { + e.preventDefault(); + e.stopPropagation(); + await rep?.mutate.updatePublicationDraft({ + cover_image: props.entityID, + }); + }} + > + Use as Cover Image + + ); }; diff --git a/components/Icons/ImageCoverImage.tsx b/components/Icons/ImageCoverImage.tsx index e574daa7..1c226c26 100644 --- a/components/Icons/ImageCoverImage.tsx +++ b/components/Icons/ImageCoverImage.tsx @@ -1,3 +1,5 @@ +import { Props } from "./Props"; + export const ImageCoverImage = () => ( ( /> ); + +export const ImageCoverImageRemove = (props: Props) => { + return ( + + + + ); +}; diff --git a/components/Toolbar/ImageToolbar.tsx b/components/Toolbar/ImageToolbar.tsx index 4991047f..e10e0fc0 100644 --- a/components/Toolbar/ImageToolbar.tsx +++ b/components/Toolbar/ImageToolbar.tsx @@ -6,7 +6,10 @@ import { Props } from "components/Icons/Props"; import { ImageAltSmall, ImageRemoveAltSmall } from "components/Icons/ImageAlt"; import { useLeafletPublicationData } from "components/PageSWRDataProvider"; import { useSubscribe } from "src/replicache/useSubscribe"; -import { ImageCoverImage } from "components/Icons/ImageCoverImage"; +import { + ImageCoverImage, + ImageCoverImageRemove, +} from "components/Icons/ImageCoverImage"; import { Separator } from "components/Layout"; import { TextAlignmentButton } from "./TextAlignmentToolbar"; @@ -134,10 +137,10 @@ export const ImageCoverButton = () => { } }} tooltipContent={ -
{isCoverImage ? "Remove Cover Image" : "Set as Cover Image"}
+
{isCoverImage ? "Remove Cover Image" : "Use as Cover Image"}
} > - + {isCoverImage ? : } ); }; -- 2.51.2