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()}; });