

import type { ISvgIcons } from "@buzzwaretech/propel/icons";
import {
    BoardLayoutIcon,
    CalendarLayoutIcon,
    ListLayoutIcon,
    SheetLayoutIcon,
    TimelineLayoutIcon,
} from "@buzzwaretech/propel/icons";
import { EIssueLayoutTypes } from "@buzzwaretech/types";

export function IssueLayoutIcon({
  layout,
  size,
  ...props
}: { layout: EIssueLayoutTypes; size?: number } & Omit<
  ISvgIcons,
  "width" | "height"
>) {
  const iconProps = {
    ...props,
    ...(size && { width: size, height: size }),
  };

  switch (layout) {
    case EIssueLayoutTypes.LIST:
      return <ListLayoutIcon {...iconProps} />;
    case EIssueLayoutTypes.KANBAN:
      return <BoardLayoutIcon {...iconProps} />;
    case EIssueLayoutTypes.CALENDAR:
      return <CalendarLayoutIcon {...iconProps} />;
    case EIssueLayoutTypes.SPREADSHEET:
      return <SheetLayoutIcon {...iconProps} />;
    case EIssueLayoutTypes.GANTT:
      return <TimelineLayoutIcon {...iconProps} />;
    default:
      return null;
  }
}
