import { ChevronLeft, ChevronRight, Pencil, Plus, Trash2 } from 'lucide-react' import { useRef } from 'react' import { useLocale } from '@meshkee/dashboard-ui' import { useT } from '../i18n/useT' import type { StoreSpecial } from '../types/storeSpecial' import { specialItemsToListings } from '../utils/storeSpecialListings' import type { StoreProductListing } from '../utils/storeProductGroups' import controlStyles from './CategoryRow.module.css' import { StoreItemCard } from './StoreItemCard' import { Tooltip } from './Tooltip' import styles from './StoreSpecialCarousel.module.css' interface StoreSpecialCarouselProps { special: StoreSpecial onAddItems: (special: StoreSpecial) => void onEditSpecial: (special: StoreSpecial) => void onDeleteSpecial: (special: StoreSpecial) => void onOpenListing: (listing: StoreProductListing) => void onEditListing: (listing: StoreProductListing) => void onDiscountListing: (listing: StoreProductListing) => void onFestivalListing: (listing: StoreProductListing) => void onRemoveListing: (special: StoreSpecial, listing: StoreProductListing) => void onAddToCart: (listing: StoreProductListing) => void } export function StoreSpecialCarousel({ special, onAddItems, onEditSpecial, onDeleteSpecial, onOpenListing, onEditListing, onDiscountListing, onFestivalListing, onRemoveListing, onAddToCart, }: StoreSpecialCarouselProps) { const t = useT() const { locale } = useLocale() const isFa = locale === 'fa' const trackRef = useRef(null) const listings = specialItemsToListings(special.items) function scrollBy(direction: -1 | 1) { const track = trackRef.current if (!track) return const amount = Math.max(track.clientWidth * 0.75, 240) track.scrollBy({ left: direction * amount, behavior: 'smooth' }) } const addCard = (
) const itemCards = listings.map((listing) => (
onRemoveListing(special, listing)} onAddToCart={onAddToCart} removeTooltip={t('website.specialItems.removeFromSpecial')} />
)) return (

{special.title}

{isFa ? ( <> {addCard} {itemCards} ) : ( <> {itemCards} {addCard} )}
) }