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