import { Link } from 'react-router-dom' import { useEffect, useLayoutEffect, useRef, useState } from 'react' import { Button } from 'react-bootstrap' import { UserCategory, composeUserCategoriesFilters, userCategoriesInfos } from '../assets/userCategories' import { Announcement } from '../api/announcement/types' import { categoryGraphics, categoryNames } from '../assets/category' import { URLEncodeFilters } from '../utils/filters' import rightAngleIcon from '../assets/rightAngle.svg' import styles from '../styles/StoriesPreview.module.css' type StoriesPreviewProps = { announcements: Announcement[], category: UserCategory, } const StoriesPreview = ({ announcements, category }: StoriesPreviewProps) => ( announcements.map((ann, i) => (
  • {ann.src?.endsWith('mp4') ? (
  • )) ) function StoriesPreviewCarousel({ announcements, category }: StoriesPreviewProps) { const ulElement = useRef(null) const [showScrollButtons, setShowScrollButtons] = useState({ left: false, right: false }) const determineShowScrollButtons = (ul: HTMLUListElement) => ( setShowScrollButtons({ left: ul.scrollLeft > 0, right: ul.scrollLeft < (ul.scrollWidth - ul.clientWidth), }) ) useEffect(() => { const ul = ulElement.current if (ul) { determineShowScrollButtons(ul) const f = () => determineShowScrollButtons(ul) ul.addEventListener('scroll', f) return () => ul.removeEventListener('scroll', f) } }, []) useLayoutEffect(() => { const ul = ulElement.current if (ul) { determineShowScrollButtons(ul) } }, [announcements]) const doScroll = (forward: boolean) => () => { const ul = ulElement.current if (ul) { const storyWidth = window.innerHeight * 0.25 * 9 / 16 + 10 ul.scrollLeft += forward ? storyWidth : -storyWidth } } return
    {showScrollButtons.left && } {announcements.length > 0 ? ( ) : (

    Здесь пока пусто

    )} {showScrollButtons.right && }
    } export default StoriesPreviewCarousel