this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Replace import.meta.glob, it actually generates imports for *all* icons

Change to manually import icons

+83 -81
+83 -81
src/components/icon.jsx
··· 9 9 }; 10 10 11 11 const ICONS = { 12 - x: 'mingcute:close-line', 13 - heart: 'mingcute:heart-line', 14 - bookmark: 'mingcute:bookmark-line', 15 - 'check-circle': 'mingcute:check-circle-line', 16 - transfer: 'mingcute:transfer-4-line', 17 - rocket: 'mingcute:rocket-line', 18 - 'arrow-left': 'mingcute:arrow-left-line', 19 - 'arrow-right': 'mingcute:arrow-right-line', 20 - 'arrow-up': 'mingcute:arrow-up-line', 21 - 'arrow-down': 'mingcute:arrow-down-line', 22 - earth: 'mingcute:earth-line', 23 - lock: 'mingcute:lock-line', 24 - unlock: 'mingcute:unlock-line', 25 - 'eye-close': 'mingcute:eye-close-line', 26 - 'eye-open': 'mingcute:eye-2-line', 27 - message: 'mingcute:mail-line', 28 - comment: 'mingcute:chat-3-line', 29 - home: 'mingcute:home-3-line', 30 - notification: 'mingcute:notification-line', 31 - follow: 'mingcute:user-follow-line', 32 - 'follow-add': 'mingcute:user-add-line', 33 - poll: ['mingcute:chart-bar-line', '90deg'], 34 - pencil: 'mingcute:pencil-line', 35 - quill: 'mingcute:quill-pen-line', 36 - at: 'mingcute:at-line', 37 - attachment: 'mingcute:attachment-line', 38 - upload: 'mingcute:upload-3-line', 39 - gear: 'mingcute:settings-3-line', 40 - more: 'mingcute:more-3-line', 41 - external: 'mingcute:external-link-line', 42 - popout: 'mingcute:external-link-line', 43 - popin: ['mingcute:external-link-line', '180deg'], 44 - plus: 'mingcute:add-circle-line', 45 - 'chevron-left': 'mingcute:left-line', 46 - 'chevron-right': 'mingcute:right-line', 47 - reply: ['mingcute:share-forward-line', '180deg', 'horizontal'], 48 - thread: 'mingcute:route-line', 49 - group: 'mingcute:group-line', 50 - bot: 'mingcute:android-2-line', 51 - menu: 'mingcute:rows-4-line', 52 - list: 'mingcute:list-check-line', 53 - search: 'mingcute:search-2-line', 54 - hashtag: 'mingcute:hashtag-line', 55 - info: 'mingcute:information-line', 56 - shortcut: 'mingcute:lightning-line', 57 - user: 'mingcute:user-4-line', 58 - following: 'mingcute:walk-line', 59 - pin: 'mingcute:pin-line', 60 - bus: 'mingcute:bus-2-line', 61 - link: 'mingcute:link-2-line', 62 - history: 'mingcute:history-line', 63 - share: 'mingcute:share-2-line', 64 - sparkles: 'mingcute:sparkles-line', 65 - exit: 'mingcute:exit-line', 66 - translate: 'mingcute:translate-line', 67 - play: 'mingcute:play-fill', 68 - trash: 'mingcute:delete-2-line', 69 - mute: 'mingcute:volume-mute-line', 70 - unmute: 'mingcute:volume-line', 71 - block: 'mingcute:forbid-circle-line', 72 - unblock: ['mingcute:forbid-circle-line', '180deg'], 73 - flag: 'mingcute:flag-4-line', 74 - time: 'mingcute:time-line', 75 - refresh: 'mingcute:refresh-2-line', 76 - emoji2: 'mingcute:emoji-2-line', 77 - filter: 'mingcute:filter-2-line', 78 - chart: 'mingcute:chart-line-line', 79 - react: 'mingcute:react-line', 80 - layout4: 'mingcute:layout-4-line', 81 - layout5: 'mingcute:layout-5-line', 82 - announce: 'mingcute:announcement-line', 12 + x: () => import('@iconify-icons/mingcute/close-line'), 13 + heart: () => import('@iconify-icons/mingcute/heart-line'), 14 + bookmark: () => import('@iconify-icons/mingcute/bookmark-line'), 15 + 'check-circle': () => import('@iconify-icons/mingcute/check-circle-line'), 16 + transfer: () => import('@iconify-icons/mingcute/transfer-4-line'), 17 + rocket: () => import('@iconify-icons/mingcute/rocket-line'), 18 + 'arrow-left': () => import('@iconify-icons/mingcute/arrow-left-line'), 19 + 'arrow-right': () => import('@iconify-icons/mingcute/arrow-right-line'), 20 + 'arrow-up': () => import('@iconify-icons/mingcute/arrow-up-line'), 21 + 'arrow-down': () => import('@iconify-icons/mingcute/arrow-down-line'), 22 + earth: () => import('@iconify-icons/mingcute/earth-line'), 23 + lock: () => import('@iconify-icons/mingcute/lock-line'), 24 + unlock: () => import('@iconify-icons/mingcute/unlock-line'), 25 + 'eye-close': () => import('@iconify-icons/mingcute/eye-close-line'), 26 + 'eye-open': () => import('@iconify-icons/mingcute/eye-2-line'), 27 + message: () => import('@iconify-icons/mingcute/mail-line'), 28 + comment: () => import('@iconify-icons/mingcute/chat-3-line'), 29 + home: () => import('@iconify-icons/mingcute/home-3-line'), 30 + notification: () => import('@iconify-icons/mingcute/notification-line'), 31 + follow: () => import('@iconify-icons/mingcute/user-follow-line'), 32 + 'follow-add': () => import('@iconify-icons/mingcute/user-add-line'), 33 + poll: [() => import('@iconify-icons/mingcute/chart-bar-line'), '90deg'], 34 + pencil: () => import('@iconify-icons/mingcute/pencil-line'), 35 + quill: () => import('@iconify-icons/mingcute/quill-pen-line'), 36 + at: () => import('@iconify-icons/mingcute/at-line'), 37 + attachment: () => import('@iconify-icons/mingcute/attachment-line'), 38 + upload: () => import('@iconify-icons/mingcute/upload-3-line'), 39 + gear: () => import('@iconify-icons/mingcute/settings-3-line'), 40 + more: () => import('@iconify-icons/mingcute/more-3-line'), 41 + external: () => import('@iconify-icons/mingcute/external-link-line'), 42 + popout: () => import('@iconify-icons/mingcute/external-link-line'), 43 + popin: [() => import('@iconify-icons/mingcute/external-link-line'), '180deg'], 44 + plus: () => import('@iconify-icons/mingcute/add-circle-line'), 45 + 'chevron-left': () => import('@iconify-icons/mingcute/left-line'), 46 + 'chevron-right': () => import('@iconify-icons/mingcute/right-line'), 47 + reply: [ 48 + () => import('@iconify-icons/mingcute/share-forward-line'), 49 + '180deg', 50 + 'horizontal', 51 + ], 52 + thread: () => import('@iconify-icons/mingcute/route-line'), 53 + group: () => import('@iconify-icons/mingcute/group-line'), 54 + bot: () => import('@iconify-icons/mingcute/android-2-line'), 55 + menu: () => import('@iconify-icons/mingcute/rows-4-line'), 56 + list: () => import('@iconify-icons/mingcute/list-check-line'), 57 + search: () => import('@iconify-icons/mingcute/search-2-line'), 58 + hashtag: () => import('@iconify-icons/mingcute/hashtag-line'), 59 + info: () => import('@iconify-icons/mingcute/information-line'), 60 + shortcut: () => import('@iconify-icons/mingcute/lightning-line'), 61 + user: () => import('@iconify-icons/mingcute/user-4-line'), 62 + following: () => import('@iconify-icons/mingcute/walk-line'), 63 + pin: () => import('@iconify-icons/mingcute/pin-line'), 64 + bus: () => import('@iconify-icons/mingcute/bus-2-line'), 65 + link: () => import('@iconify-icons/mingcute/link-2-line'), 66 + history: () => import('@iconify-icons/mingcute/history-line'), 67 + share: () => import('@iconify-icons/mingcute/share-2-line'), 68 + sparkles: () => import('@iconify-icons/mingcute/sparkles-line'), 69 + exit: () => import('@iconify-icons/mingcute/exit-line'), 70 + translate: () => import('@iconify-icons/mingcute/translate-line'), 71 + play: () => import('@iconify-icons/mingcute/play-fill'), 72 + trash: () => import('@iconify-icons/mingcute/delete-2-line'), 73 + mute: () => import('@iconify-icons/mingcute/volume-mute-line'), 74 + unmute: () => import('@iconify-icons/mingcute/volume-line'), 75 + block: () => import('@iconify-icons/mingcute/forbid-circle-line'), 76 + unblock: [ 77 + () => import('@iconify-icons/mingcute/forbid-circle-line'), 78 + '180deg', 79 + ], 80 + flag: () => import('@iconify-icons/mingcute/flag-4-line'), 81 + time: () => import('@iconify-icons/mingcute/time-line'), 82 + refresh: () => import('@iconify-icons/mingcute/refresh-2-line'), 83 + emoji2: () => import('@iconify-icons/mingcute/emoji-2-line'), 84 + filter: () => import('@iconify-icons/mingcute/filter-2-line'), 85 + chart: () => import('@iconify-icons/mingcute/chart-line-line'), 86 + react: () => import('@iconify-icons/mingcute/react-line'), 87 + layout4: () => import('@iconify-icons/mingcute/layout-4-line'), 88 + layout5: () => import('@iconify-icons/mingcute/layout-5-line'), 89 + announce: () => import('@iconify-icons/mingcute/announcement-line'), 83 90 }; 84 - 85 - const modules = import.meta.glob('/node_modules/@iconify-icons/mingcute/*.js'); 86 91 87 92 function Icon({ 88 93 icon, ··· 95 100 if (!icon) return null; 96 101 97 102 const iconSize = SIZES[size]; 98 - let iconName = ICONS[icon]; 103 + let iconBlock = ICONS[icon]; 99 104 let rotate, flip; 100 - if (Array.isArray(iconName)) { 101 - [iconName, rotate, flip] = iconName; 105 + if (Array.isArray(iconBlock)) { 106 + [iconBlock, rotate, flip] = iconBlock; 102 107 } 103 108 104 109 const [iconData, setIconData] = useState(null); 105 110 useEffect(async () => { 106 - const name = iconName.replace('mingcute:', ''); 107 - const icon = await modules[ 108 - `/node_modules/@iconify-icons/mingcute/${name}.js` 109 - ](); 111 + const icon = await iconBlock(); 110 112 setIconData(icon.default); 111 - }, [iconName]); 113 + }, [iconBlock]); 112 114 113 115 return ( 114 116 <div