import React from 'react';

import ClockIcon from '@/icons/generated/ClockIcon';
import CrownIcon from '@/icons/generated/CrownIcon';
import DownloadIcon from '@/icons/generated/DownloadIcon';
import FourStarIcon from '@/icons/generated/FourStarIcon';
import MusicSlashIcon from '@/icons/generated/MusicSlashIcon';
import PersonaCreateIcon from '@/icons/generated/PersonaCreateIcon';
import ScissorsIcon from '@/icons/generated/ScissorsIcon';
import SectionIcon from '@/icons/generated/SectionIcon';
import SlidersIcon from '@/icons/generated/SlidersIcon';
import SparklesIcon from '@/icons/generated/SparklesIcon';
import StemsIcon from '@/icons/generated/StemsIcon';
import StudioIcon from '@/icons/generated/StudioIcon';
import UploadIcon from '@/icons/generated/UploadIcon';
import VideoIcon from '@/icons/generated/VideoIcon';
import WandIcon from '@/icons/generated/WandIcon';

const iconMap: Record<string, React.ReactElement> = {
  personas: <PersonaCreateIcon className='h-6 w-6' />,
  stems: <StemsIcon className='h-6 w-6' />,
  remaster: <FourStarIcon className='h-6 w-6' />,
  song_editor: <SlidersIcon className='h-6 w-6' />,
  crop_fade: <ScissorsIcon className='h-6 w-6' />,
  replace_section: <SectionIcon className='h-6 w-6' />,
  longer_audio_upload: <UploadIcon className='h-6 w-6' />,
  magic_descriptions: <WandIcon className='h-6 w-6' />,
  exclude_styles: <SparklesIcon className='h-6 w-6' />,
  advanced_sliders: <SlidersIcon className='h-6 w-6' />,
  out_of_credits: <MusicSlashIcon className='h-6 w-6' />,
  download_wav: <DownloadIcon className='h-6 w-6' />,
  generate_video: <VideoIcon className='h-6 w-6' />,
  simultaneous_gens: <ClockIcon className='h-6 w-6' />,
  studio: <StudioIcon className='h-6 w-6' />,
  upgrade_latest_model: <FourStarIcon className='h-6 w-6' />,
};

export const getFeatureIcon = (icon: string): React.ReactElement => {
  return iconMap[icon] || <CrownIcon className='h-6 w-6' />;
};
