From 95c551596de529628d434b4c2620f45bc6b9816f Mon Sep 17 00:00:00 2001 From: Yash Raj Chhabra Date: Fri, 7 Nov 2025 13:38:53 +0530 Subject: [PATCH] fix(snackbar): always tab to snackbar if active --- src/components/Snackbar/SnackbarContainer.tsx | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/components/Snackbar/SnackbarContainer.tsx b/src/components/Snackbar/SnackbarContainer.tsx index 45ae18ddb..ef6cc95b6 100644 --- a/src/components/Snackbar/SnackbarContainer.tsx +++ b/src/components/Snackbar/SnackbarContainer.tsx @@ -22,7 +22,6 @@ export const SnackbarContainer: FC = ({ }) => { const [snacks, setSnacks] = useState([]); const closeButtonRefs = useRef>(new Map()); - const firstTabPressedRef = useRef(false); const [snackbarLocale] = useLocaleReceiver('Snackbar'); let mergedLocale: SnackbarLocale; @@ -62,11 +61,10 @@ export const SnackbarContainer: FC = ({ return; } - // First tab interception - if (e.key === 'Tab' && !firstTabPressedRef.current) { + // Handle tab interception + if (e.key === 'Tab') { e.preventDefault(); - firstTabPressedRef.current = true; - // Focus the first closable snackbar's close button + // Move focus to the first closable snackbar's close button const firstSnack = closableSnacks[0]; const firstButton = closeButtonRefs.current.get(firstSnack.id!); firstButton?.focus(); @@ -110,14 +108,6 @@ export const SnackbarContainer: FC = ({ }; }, [snacks]); - // Reset firstTabPressed when no closable snacks exist - useEffect(() => { - const closableSnacks = snacks.filter((snack) => snack.closable); - if (closableSnacks.length === 0) { - firstTabPressedRef.current = false; - } - }, [snacks]); - const positionToClassMap: Record = { 'top-left': styles.topLeft, 'top-right': styles.topRight,