From 89491870eb37b26c5dd42f576df40813c0bd7cb2 Mon Sep 17 00:00:00 2001 From: Aman Harwara Date: Wed, 28 Feb 2024 21:05:06 +0530 Subject: [PATCH] chore: make super item links wrap like normal links --- .../LinkedItems/LinkedItemBubble.tsx | 50 +++++++++++++++++-- .../Nodes/BubbleComponent.tsx | 3 +- 2 files changed, 47 insertions(+), 6 deletions(-) diff --git a/packages/web/src/javascripts/Components/LinkedItems/LinkedItemBubble.tsx b/packages/web/src/javascripts/Components/LinkedItems/LinkedItemBubble.tsx index 690c95076..bfcc74c39 100644 --- a/packages/web/src/javascripts/Components/LinkedItems/LinkedItemBubble.tsx +++ b/packages/web/src/javascripts/Components/LinkedItems/LinkedItemBubble.tsx @@ -24,6 +24,7 @@ type Props = { inlineFlex?: boolean className?: string readonly?: boolean + wrappable?: boolean } const LinkedItemBubble = ({ @@ -38,12 +39,13 @@ const LinkedItemBubble = ({ inlineFlex, className, readonly, + wrappable, }: Props) => { - const ref = useRef(null) + const ref = useRef() const application = useApplication() const [showUnlinkButton, setShowUnlinkButton] = useState(false) - const unlinkButtonRef = useRef(null) + const unlinkButtonRef = useRef() const [wasClicked, setWasClicked] = useState(false) @@ -101,11 +103,49 @@ const LinkedItemBubble = ({ } }, [focusedId, link.id]) + if (wrappable) { + return ( + (ref.current = el as HTMLElement)} + tabIndex={0} + className={classNames( + 'group cursor-pointer rounded align-middle [&>*]:align-middle', + 'bg-passive-4-opacity-variant outline-1 outline-info hover:bg-contrast focus:bg-contrast focus:outline', + 'whitespace-pre-wrap text-left text-sm text-text hover:no-underline focus:no-underline lg:text-xs', + 'py-1 pl-1 pr-2', + className, + )} + onFocus={handleFocus} + onBlur={onBlur} + onClick={onClick} + title={tagTitle ? tagTitle.longTitle : link.item.title} + onKeyDown={onKeyDown} + > + + {tagTitle && {tagTitle.titlePrefix}} + {link.type === 'linked-by' && link.item.content_type !== ContentType.TYPES.Tag && ( + Linked By: + )} + {getItemTitleInContextOfLinkBubble(link.item)} + {showUnlinkButton && !readonly && ( + + )} + + ) + } + return (