/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0 */ import React, { ReactNode, useState, useEffect, useContext } from "react"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChevronLeft, faChevronRight } from "@fortawesome/free-solid-svg-icons"; import { VisibilityContext } from "react-horizontal-scrolling-menu"; import { useTranslation } from "react-i18next"; function Arrow({ children, disabled, onClick, className, ariaLabel, }: { children: ReactNode; disabled: boolean; onClick: VoidFunction; className: string; ariaLabel?: string; }) { return ( ); } export function LeftArrow() { const { t } = useTranslation(); const { initComplete, isFirstItemVisible, scrollPrev } = useContext(VisibilityContext); const [disabled, setDisabled] = useState(isFirstItemVisible); useEffect(() => { setDisabled(isFirstItemVisible); }, [isFirstItemVisible]); return ( !disabled && ( scrollPrev()} className="margin-right-2" ariaLabel={t("ARIA.PreviosItems")} > ) ); } export function RightArrow() { const { t } = useTranslation(); const { initComplete, isLastItemVisible, scrollNext } = useContext(VisibilityContext); const [disabled, setDisabled] = useState(isLastItemVisible); useEffect(() => { setDisabled(isLastItemVisible); }, [isLastItemVisible]); return ( !disabled && ( scrollNext()} className="margin-left-2" ariaLabel={t("ARIA.NextItems")} > ) ); }