import React from "react"; import { Slot } from "radix-ui"; import { Button } from "../button"; import { Icon } from "../icon"; import { ArrowLeft } from "@washingtonpost/wpds-assets"; import { CarouselContext } from "./CarouselRoot"; const NAME = "CarouselPreviousButton"; export type CarouselPreviousButtonProps = { asChild?: boolean; } & React.ComponentPropsWithRef; export const CarouselPreviousButton = React.forwardRef< HTMLButtonElement, CarouselPreviousButtonProps >( ( { onClick, css, density = "compact", icon = "center", variant = "primary", asChild, ...props }, ref ) => { const { page, setPage, totalPages } = React.useContext(CarouselContext); const handleClick = (event: React.MouseEvent) => { if (totalPages && page > 0) { setPage(page - 1); onClick && onClick(event); } }; let isDisabled; if (totalPages) { isDisabled = page === 0; } return ( <> {asChild ? ( ) : ( )} ); } ); CarouselPreviousButton.displayName = NAME;