'use client';

import Link from 'next/link';
import { FC } from 'react';
import BookmarkDialog from './BookmarkDialog';
import { VC_FE_URL, WOSA_ADMIN_URL } from '@/config/site-config';
import { UnknownRecord } from '@/types';

interface BookmarksProps {
  menuBookmarks: UnknownRecord[];
  setOpen?: (open: boolean) => void;
  handleMenuItemClick: (href: string, title: string, platform: string) => void;
}

/**
 * Bookmarks Component
 * Renders a list of bookmarked menus with links and a BookmarkDialog per item.
 */
const Bookmarks: FC<BookmarksProps> = ({
  menuBookmarks,
  setOpen,
  handleMenuItemClick,
}) => {
  return (
    <div>
      <div className="bookmark-heading">Bookmarks</div>
      <div className="scroll-y bookmark-holder active">
        <ul className="bookmark-list">
          {menuBookmarks.map((page: UnknownRecord, index: number) => {
            const BASEURL =
              String(page.platform) === '2' ? VC_FE_URL : WOSA_ADMIN_URL;
            return (
              <li key={index}>
                <Link
                  href={`${BASEURL}${page.menu_link.replace(/^\/+/, '')}`}
                  onClick={() => {
                    handleMenuItemClick(
                      `${page.menu_link.replace(/^\/+/, '')}`,
                      page.menu_name,
                      page.platform,
                    );
                    setOpen?.(false);
                  }}
                >
                  {page.menu_name}
                </Link>
                <BookmarkDialog props={page} />
              </li>
            );
          })}
        </ul>
      </div>
    </div>
  );
};

export default Bookmarks;
