import { Flex } from '@metafam/ds'; import type { PropsWithChildren } from 'react'; import React, { KeyboardEventHandler, useState } from 'react'; import { useCarouselContext } from './CarouselContext'; type ItemProps = PropsWithChildren<{ index: number }>; export const Item: React.FC = ({ children, index }) => { const { setTrackIsActive, setActiveItem, activeItem, constraint, itemWidth, positions, gap, defaultCarousel, } = useCarouselContext(); const [userDidTab, setUserDidTab] = useState(false); const handleFocus = () => setTrackIsActive(true); const handleBlur = () => { if (userDidTab && index + 1 === positions.length) { setTrackIsActive(false); } setUserDidTab(false); }; const handleKeyUp: KeyboardEventHandler = (event) => event.key === 'Tab' && !(activeItem === positions.length - constraint) && setActiveItem(index); const handleKeyDown: KeyboardEventHandler = (event) => event.key === 'Tab' && setUserDidTab(true); return ( {children} ); };