1// This file is generated by generate-assets.mjs. DO NOT MODIFY. 2import {SvgProps} from 'react-native-svg'; 3 4import AlarmOutlineIcon from '@/assets/icons/alarm-outline.svg'; 5import AlbumOutlineIcon from '@/assets/icons/album-outline.svg'; 6import ArchiveBoxXMarkIcon from '@/assets/icons/archive-box-x-mark.svg'; 7import ArrowDownTrayIcon from '@/assets/icons/arrow-down-tray.svg'; 8import ArrowLeftIcon from '@/assets/icons/arrow-left.svg'; 9import ArrowLongLeftIcon from '@/assets/icons/arrow-long-left.svg'; 10import ArrowPathIcon from '@/assets/icons/arrow-path.svg'; 11import ArrowRightEndOnRectangleIcon from '@/assets/icons/arrow-right-end-on-rectangle.svg'; 12import ArrowUturnLeftIcon from '@/assets/icons/arrow-uturn-left.svg'; 13import ArrowsLeftRightIcon from '@/assets/icons/arrows-left-right.svg'; 14import Bars3Icon from '@/assets/icons/bars-3.svg'; 15import BookmarkSquareIcon from '@/assets/icons/bookmark-square.svg'; 16import CheckCircleOutlineIcon from '@/assets/icons/check-circle-outline.svg'; 17import CheckCircleIcon from '@/assets/icons/check-circle.svg'; 18import CheckIcon from '@/assets/icons/check.svg'; 19import CircleStackIcon from '@/assets/icons/circle-stack.svg'; 20import ClockOutlineIcon from '@/assets/icons/clock-outline.svg'; 21import CodeBracketSquareIcon from '@/assets/icons/code-bracket-square.svg'; 22import Cog8ToothIcon from '@/assets/icons/cog-8-tooth.svg'; 23import DocumentOutlineIcon from '@/assets/icons/document-outline.svg'; 24import EllipsisVerticalIcon from '@/assets/icons/ellipsis-vertical.svg'; 25import ExclamationCircleIcon from '@/assets/icons/exclamation-circle.svg'; 26import FireOutlineIcon from '@/assets/icons/fire-outline.svg'; 27import FireIcon from '@/assets/icons/fire.svg'; 28import FolderMusicOutlineIcon from '@/assets/icons/folder-music-outline.svg'; 29import FolderOutlineIcon from '@/assets/icons/folder-outline.svg'; 30import FolderPlusIcon from '@/assets/icons/folder-plus.svg'; 31import FontSizeIcon from '@/assets/icons/font-size.svg'; 32import HeartOutlineIcon from '@/assets/icons/heart-outline.svg'; 33import HeartIcon from '@/assets/icons/heart.svg'; 34import HomeOutlineIcon from '@/assets/icons/home-outline.svg'; 35import IdentificationIcon from '@/assets/icons/identification.svg'; 36import InboxArrowDownIcon from '@/assets/icons/inbox-arrow-down.svg'; 37import InformationCircleIcon from '@/assets/icons/information-circle.svg'; 38import JavascriptIcon from '@/assets/icons/javascript.svg'; 39import LinkSlashIcon from '@/assets/icons/link-slash.svg'; 40import LinkIcon from '@/assets/icons/link.svg'; 41import LyricIcon from '@/assets/icons/lyric.svg'; 42import MagnifyingGlassIcon from '@/assets/icons/magnifying-glass.svg'; 43import MinusIcon from '@/assets/icons/minus.svg'; 44import MotionPlayIcon from '@/assets/icons/motion-play.svg'; 45import MusicalNoteIcon from '@/assets/icons/musical-note.svg'; 46import PauseCircleOutlineIcon from '@/assets/icons/pause-circle-outline.svg'; 47import PauseIcon from '@/assets/icons/pause.svg'; 48import PencilOutlineIcon from '@/assets/icons/pencil-outline.svg'; 49import PencilSquareIcon from '@/assets/icons/pencil-square.svg'; 50import PlayCircleOutlineIcon from '@/assets/icons/play-circle-outline.svg'; 51import PlayCircleIcon from '@/assets/icons/play-circle.svg'; 52import PlayIcon from '@/assets/icons/play.svg'; 53import PlaylistIcon from '@/assets/icons/playlist.svg'; 54import PlusIcon from '@/assets/icons/plus.svg'; 55import PowerOutlineIcon from '@/assets/icons/power-outline.svg'; 56import RepeatSong1Icon from '@/assets/icons/repeat-song-1.svg'; 57import RepeatSongIcon from '@/assets/icons/repeat-song.svg'; 58import ShareIcon from '@/assets/icons/share.svg'; 59import ShieldKeyholeOutlineIcon from '@/assets/icons/shield-keyhole-outline.svg'; 60import ShuffleIcon from '@/assets/icons/shuffle.svg'; 61import SkipLeftIcon from '@/assets/icons/skip-left.svg'; 62import SkipRightIcon from '@/assets/icons/skip-right.svg'; 63import SortOutlineIcon from '@/assets/icons/sort-outline.svg'; 64import TShirtOutlineIcon from '@/assets/icons/t-shirt-outline.svg'; 65import TranslationIcon from '@/assets/icons/translation.svg'; 66import TrashOutlineIcon from '@/assets/icons/trash-outline.svg'; 67import TrophyIcon from '@/assets/icons/trophy.svg'; 68import UserIcon from '@/assets/icons/user.svg'; 69import XMarkIcon from '@/assets/icons/x-mark.svg'; 70 71export type IIconName = 72 | 'alarm-outline' 73 | 'album-outline' 74 | 'archive-box-x-mark' 75 | 'arrow-down-tray' 76 | 'arrow-left' 77 | 'arrow-long-left' 78 | 'arrow-path' 79 | 'arrow-right-end-on-rectangle' 80 | 'arrow-uturn-left' 81 | 'arrows-left-right' 82 | 'bars-3' 83 | 'bookmark-square' 84 | 'check-circle-outline' 85 | 'check-circle' 86 | 'check' 87 | 'circle-stack' 88 | 'clock-outline' 89 | 'code-bracket-square' 90 | 'cog-8-tooth' 91 | 'document-outline' 92 | 'ellipsis-vertical' 93 | 'exclamation-circle' 94 | 'fire-outline' 95 | 'fire' 96 | 'folder-music-outline' 97 | 'folder-outline' 98 | 'folder-plus' 99 | 'font-size' 100 | 'heart-outline' 101 | 'heart' 102 | 'home-outline' 103 | 'identification' 104 | 'inbox-arrow-down' 105 | 'information-circle' 106 | 'javascript' 107 | 'link-slash' 108 | 'link' 109 | 'lyric' 110 | 'magnifying-glass' 111 | 'minus' 112 | 'motion-play' 113 | 'musical-note' 114 | 'pause-circle-outline' 115 | 'pause' 116 | 'pencil-outline' 117 | 'pencil-square' 118 | 'play-circle-outline' 119 | 'play-circle' 120 | 'play' 121 | 'playlist' 122 | 'plus' 123 | 'power-outline' 124 | 'repeat-song-1' 125 | 'repeat-song' 126 | 'share' 127 | 'shield-keyhole-outline' 128 | 'shuffle' 129 | 'skip-left' 130 | 'skip-right' 131 | 'sort-outline' 132 | 't-shirt-outline' 133 | 'translation' 134 | 'trash-outline' 135 | 'trophy' 136 | 'user' 137 | 'x-mark'; 138 139interface IProps extends SvgProps { 140 /** 图标名称 */ 141 name: IIconName; 142 /** 图标大小 */ 143 size?: number; 144} 145 146const iconMap = { 147 'alarm-outline': AlarmOutlineIcon, 148 'album-outline': AlbumOutlineIcon, 149 'archive-box-x-mark': ArchiveBoxXMarkIcon, 150 'arrow-down-tray': ArrowDownTrayIcon, 151 'arrow-left': ArrowLeftIcon, 152 'arrow-long-left': ArrowLongLeftIcon, 153 'arrow-path': ArrowPathIcon, 154 'arrow-right-end-on-rectangle': ArrowRightEndOnRectangleIcon, 155 'arrow-uturn-left': ArrowUturnLeftIcon, 156 'arrows-left-right': ArrowsLeftRightIcon, 157 'bars-3': Bars3Icon, 158 'bookmark-square': BookmarkSquareIcon, 159 'check-circle-outline': CheckCircleOutlineIcon, 160 'check-circle': CheckCircleIcon, 161 check: CheckIcon, 162 'circle-stack': CircleStackIcon, 163 'clock-outline': ClockOutlineIcon, 164 'code-bracket-square': CodeBracketSquareIcon, 165 'cog-8-tooth': Cog8ToothIcon, 166 'document-outline': DocumentOutlineIcon, 167 'ellipsis-vertical': EllipsisVerticalIcon, 168 'exclamation-circle': ExclamationCircleIcon, 169 'fire-outline': FireOutlineIcon, 170 fire: FireIcon, 171 'folder-music-outline': FolderMusicOutlineIcon, 172 'folder-outline': FolderOutlineIcon, 173 'folder-plus': FolderPlusIcon, 174 'font-size': FontSizeIcon, 175 'heart-outline': HeartOutlineIcon, 176 heart: HeartIcon, 177 'home-outline': HomeOutlineIcon, 178 identification: IdentificationIcon, 179 'inbox-arrow-down': InboxArrowDownIcon, 180 'information-circle': InformationCircleIcon, 181 javascript: JavascriptIcon, 182 'link-slash': LinkSlashIcon, 183 link: LinkIcon, 184 lyric: LyricIcon, 185 'magnifying-glass': MagnifyingGlassIcon, 186 minus: MinusIcon, 187 'motion-play': MotionPlayIcon, 188 'musical-note': MusicalNoteIcon, 189 'pause-circle-outline': PauseCircleOutlineIcon, 190 pause: PauseIcon, 191 'pencil-outline': PencilOutlineIcon, 192 'pencil-square': PencilSquareIcon, 193 'play-circle-outline': PlayCircleOutlineIcon, 194 'play-circle': PlayCircleIcon, 195 play: PlayIcon, 196 playlist: PlaylistIcon, 197 plus: PlusIcon, 198 'power-outline': PowerOutlineIcon, 199 'repeat-song-1': RepeatSong1Icon, 200 'repeat-song': RepeatSongIcon, 201 share: ShareIcon, 202 'shield-keyhole-outline': ShieldKeyholeOutlineIcon, 203 shuffle: ShuffleIcon, 204 'skip-left': SkipLeftIcon, 205 'skip-right': SkipRightIcon, 206 'sort-outline': SortOutlineIcon, 207 't-shirt-outline': TShirtOutlineIcon, 208 translation: TranslationIcon, 209 'trash-outline': TrashOutlineIcon, 210 trophy: TrophyIcon, 211 user: UserIcon, 212 'x-mark': XMarkIcon, 213} as const; 214 215export default function Icon(props: IProps) { 216 const {name, size} = props; 217 218 const newProps = { 219 ...props, 220 width: props.width ?? size, 221 height: props.width ?? size, 222 } as SvgProps; 223 224 const Component = iconMap[name]; 225 226 return <Component {...newProps} />; 227} 228