this repo has no description
0
fork

Configure Feed

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

Skip useEffect if icon already loaded

+11 -5
+11 -5
src/components/icon.jsx
··· 107 107 speak: () => import('@iconify-icons/mingcute/radar-line'), 108 108 }; 109 109 110 + const ICONDATA = {}; 111 + 110 112 function Icon({ 111 113 icon, 112 114 size = 'm', ··· 124 126 [iconBlock, rotate, flip] = iconBlock; 125 127 } 126 128 127 - const [iconData, setIconData] = useState(null); 128 - useEffect(async () => { 129 - const icon = await iconBlock(); 130 - setIconData(icon.default); 131 - }, [iconBlock]); 129 + const [iconData, setIconData] = useState(ICONDATA[icon]); 130 + useEffect(() => { 131 + if (iconData) return; 132 + (async () => { 133 + const iconB = await iconBlock(); 134 + setIconData(iconB.default); 135 + ICONDATA[icon] = iconB.default; 136 + })(); 137 + }, [iconData, icon, iconBlock]); 132 138 133 139 return ( 134 140 <span