/** @jsxImportSource @emotion/react */ "use client"; import onScrollToNextRef from "@/libs/handler/onScrollToRef"; import { colors } from "@/libs/themes"; import React, { ForwardedRef, useRef } from "react"; type Menu = { id: string | number; name: string; onClick: () => void; children?: never[]; }; type SlideSwitchProps = { menus: Menu[]; // Ensure menus is always an array maxWidth?: number; backgroundColor?: string; checkedMenuId: string | number; // Optional: Name of the checked menu children?: never[]; }; const SlideSwitch = React.forwardRef( ( { maxWidth, menus = [], backgroundColor, checkedMenuId = "1", }: SlideSwitchProps, ref: ForwardedRef ) => { const slideRef = useRef(null); const slideP = menus.length > 0 ? menus.findIndex((menu) => menu.id === checkedMenuId) : 0; const memoizedMenus = menus ?? []; return (
{/* Overlay for the active menu */}
{""}
{/* Render menu buttons */} {memoizedMenus.map((item, i) => (
{ item.onClick(); onScrollToNextRef(ref || (slideRef as any)); }} > {item.name}
))}
); } ); export default SlideSwitch;