import { SettingIcon } from "./icons/setting-icon.component";
import { TrashIcon } from "./icons/trash-icon.component";
import { FavoriteIcon } from "./icons/favorite-icon.component";
import { FolderIcon } from "./icons/folder-icon.component";
import { BsNoteFill } from "./icons/bs-note-fill.component";
import { TerminalIcon } from "./icons/terminal-icon.component";
import { DesktopIcon } from "./icons/desktop-icon.component";
import { OculusIcon } from "./icons/oculus-icon.component";
import { AddIcon } from "./icons/add-icon.component";
import { CrossIcon } from "./icons/cross-icon.component";
import { FranceIcon } from "./flags/france-icon.component";
import { SpainIcon } from "./flags/spain-icon.component";
import { UsaIcon } from "./flags/usa-icon.component";
import { UkIcon } from "./flags/uk-icon.component";
import { TaskIcon } from "./icons/task-icon.component";
import { CopyIcon } from "./icons/copy-icon.component";
import { SteamIcon } from "./icons/steam-icon.component";
import { CSSProperties, memo } from "react";
import EditIcon from "./icons/edit-icon.component";
import { ExportIcon } from "./icons/export-icon.component";
import PatreonIcon from "./icons/patreon-icon.component";
import { SearchIcon } from "./icons/search-icon.component";
import { CheckIcon } from "./icons/check-icon.component";
import { ThreeDotsIcon } from "./icons/three-dots-icon.component";
import { GitHubIcon } from "./icons/github-icon.component";
import { CloseIcon } from "./icons/close-icon.component";
import { BsMapDifficultyIcon } from "./icons/bs-map-difficulty-icon.component";
import { TwitchIcon } from "./icons/twitch-icon.component";
import EyeIcon from "./icons/eye-icon.component";
import { PlayIcon } from "./icons/play-icon.component";
import { ThumbUpFillIcon } from "./icons/thumb-up-fill-icon.component";
import { TimerFillIcon } from "./icons/timer-fill.component";
import { CheckCircleIcon } from "./icons/check-circle-icon.component";
import { PauseIcon } from "./icons/pause-icon.component";
import { LightshowIcon } from "./icons/lightshow-icon.component";
import { LawlessIcon } from "./icons/lawless-icon.component";
import { NoArrowIcon } from "./icons/no-arrow-icon.component";
import { OneSaberIcon } from "./icons/one-saber-icon.component";
import { NinetyDregreeIcon } from "./icons/ninety-dregree-icon.component";
import { ThreeSixtyDegreeIcon } from "./icons/three-sixty-degree-icon.component";
import { LinkIcon } from "./icons/link-icon.component";
import { UnlinkIcon } from "./icons/unlink-icon.component";
import { DownloadIcon } from "./icons/download-icon.component";
import { FilterIcon } from "./icons/filter-icon.component";
import DiscordIcon from "./icons/discord-icon.component";
import { TwitterIcon } from "./icons/twitter-icon.component";
import { Mee6Icon } from "./icons/mee6-icon.component";
import { InfoIcon } from "./icons/info-icon.component";
import { SyncIcon } from "./icons/sync-icon.component";
import { VolumeUpIcon } from "./icons/volume-up-icon.component";
import { VolumeOffIcon } from "./icons/volume-off-icon.component";
import { VolumeDownIcon } from "./icons/volume-down-icon.component";
import { WebSiteIcon } from "./icons/web-site-icon.component";
import { GermanIcon } from "./flags/german-icon.component";
import { RussianIcon } from "./flags/russian-icon.component";
import { ChineseIcon } from "./flags/chinese-icon.component";
import { ChineseTraditionalIcon } from "./flags/chineseTraditional-icon.component";
import { JapanIcon } from "./flags/japan-icon.component";
import { ChevronTopIcon } from "./icons/chevron-top-icon.component";
import { EyeCrossIcon } from "./icons/eye-cross-icon.component";
import { ShortcutIcon } from "./icons/shortcut-icon.component";
import { BackupRestoreIcon } from "./icons/backup-restore-icon.component";
import { SongDetailDiffCharactertistic } from "shared/models/maps/song-details-cache/song-details-cache.model";
import { CleanIcon } from "./icons/clean-icon.component";
export type BsmIconType = SongDetailDiffCharactertistic | ("settings" | "trash" | "favorite" | "folder" | "bsNote" | "check" | "three-dots" | "twitch" | "eye" | "play" | "checkCircleIcon" | "discord" | "info" | "eye-cross" | "terminal" | "desktop" | "oculus" | "add" | "cross" | "task" | "github" | "close" | "thumbUpFill" | "timerFill" | "pause" | "twitter" | "sync" | "chevron-top" | "copy" | "steam" | "edit" | "export" | "patreon" | "search" | "bsMapDifficulty" | "link" | "unlink" | "download" | "filter" | "mee6" | "volume-up" | "volume-off" | "volume-down" | "shortcut" | "backup-restore" | "web-site" | "clean" | "fr-FR-flag" | "es-ES-flag" | "en-US-flag" | "en-EN-flag" | "de-DE-flag" | "ru-RU-flag" | "zh-CN-flag" | "zh-TW-flag" | "ja-JP-flag");
export const BsmIcon = memo(({ className, icon, style }: { className?: string; icon: BsmIconType; style?: CSSProperties }) => {
// TODO : Very ugly very messy, need to find a better way to do this
// the rework have started, see `svg-icon.type.ts`
const renderIcon = () => {
if (icon === "settings") {
return ;
}
if (icon === "trash") {
return ;
}
if (icon === "favorite") {
return ;
}
if (icon === "folder") {
return ;
}
if (icon === "bsNote") {
return ;
}
if (icon === "terminal") {
return ;
}
if (icon === "desktop") {
return ;
}
if (icon === "oculus") {
return ;
}
if (icon === "add") {
return ;
}
if (icon === "cross") {
return ;
}
if (icon === "fr-FR-flag") {
return ;
}
if (icon === "es-ES-flag") {
return ;
}
if (icon === "en-US-flag") {
return ;
}
if (icon === "en-EN-flag") {
return ;
}
if (icon === "de-DE-flag") {
return ;
}
if (icon === "ru-RU-flag") {
return ;
}
if (icon === "zh-CN-flag") {
return ;
}
if (icon === "zh-TW-flag") {
return ;
}
if (icon === "ja-JP-flag") {
return ;
}
if (icon === "task") {
return ;
}
if (icon === "copy") {
return ;
}
if (icon === "steam") {
return ;
}
if (icon === "edit") {
return ;
}
if (icon === "export") {
return ;
}
if (icon === "patreon") {
return ;
}
if (icon === "search") {
return ;
}
if (icon === "check") {
return ;
}
if (icon === "three-dots") {
return ;
}
if (icon === "github") {
return ;
}
if (icon === "close") {
return ;
}
if (icon === "bsMapDifficulty" || icon === "Standard") {
return ;
}
if (icon === "twitch") {
return ;
}
if (icon === "eye") {
return ;
}
if (icon === "play") {
return ;
}
if (icon === "thumbUpFill") {
return ;
}
if (icon === "timerFill") {
return ;
}
if (icon === "checkCircleIcon") {
return ;
}
if (icon === "pause") {
return ;
}
if (icon === "Lawless") {
return ;
}
if (icon === "NoArrows") {
return ;
}
if (icon === "OneSaber") {
return ;
}
if (icon === "Lightshow") {
return ;
}
if (icon === "90Degree") {
return ;
}
if (icon === "360Degree") {
return ;
}
if (icon === "link") {
return ;
}
if (icon === "unlink") {
return ;
}
if (icon === "download") {
return ;
}
if (icon === "filter") {
return ;
}
if (icon === "discord") {
return ;
}
if (icon === "twitter") {
return ;
}
if (icon === "mee6") {
return ;
}
if (icon === "info") {
return ;
}
if (icon === "sync") {
return ;
}
if (icon === "volume-up") {
return ;
}
if (icon === "volume-down") {
return ;
}
if (icon === "volume-off") {
return ;
}
if (icon === "chevron-top") {
return ;
}
if (icon === "eye-cross") {
return ;
}
if (icon === "shortcut") {
return ;
}
if (icon === "backup-restore") {
return ;
}
if(icon === "web-site") {
return ;
}
if(icon === "clean") {
return ;
}
return ;
};
return <>{renderIcon()}>;
});