From 800bea7209ae14fe7d6afefaaadc8114ae30d325 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 29 Jan 2025 13:51:47 +0100 Subject: [PATCH] [Glitch] Add ability to dismiss alt text badge by tapping it in web UI Port 796187c1e8a387d94892e39cc8b897866e616d4d to glitch-soc Signed-off-by: Claire --- .../glitch/components/alt_text_badge.tsx | 16 +++++- .../account/components/domain_pill.tsx | 7 ++- .../alt_text_modal/components/info_button.tsx | 8 ++- .../glitch/hooks/useSelectableClick.ts | 55 +++++++++++++++++++ 4 files changed, 81 insertions(+), 5 deletions(-) create mode 100644 app/javascript/flavours/glitch/hooks/useSelectableClick.ts diff --git a/app/javascript/flavours/glitch/components/alt_text_badge.tsx b/app/javascript/flavours/glitch/components/alt_text_badge.tsx index 99bec1ee51..466c5cf1bc 100644 --- a/app/javascript/flavours/glitch/components/alt_text_badge.tsx +++ b/app/javascript/flavours/glitch/components/alt_text_badge.tsx @@ -1,4 +1,4 @@ -import { useState, useCallback, useRef } from 'react'; +import { useState, useCallback, useRef, useId } from 'react'; import { FormattedMessage } from 'react-intl'; @@ -8,12 +8,15 @@ import type { UsePopperOptions, } from 'react-overlays/esm/usePopper'; +import { useSelectableClick } from '@/hooks/useSelectableClick'; + const offset = [0, 4] as OffsetValue; const popperConfig = { strategy: 'fixed' } as UsePopperOptions; export const AltTextBadge: React.FC<{ description: string; }> = ({ description }) => { + const accessibilityId = useId(); const anchorRef = useRef(null); const [open, setOpen] = useState(false); @@ -25,12 +28,16 @@ export const AltTextBadge: React.FC<{ setOpen(false); }, [setOpen]); + const [handleMouseDown, handleMouseUp] = useSelectableClick(handleClose); + return ( <> @@ -47,9 +54,12 @@ export const AltTextBadge: React.FC<{ > {({ props }) => (
-