From 5936e8dbca98e7b152c85de33dc84cd896f0c257 Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Thu, 1 Aug 2024 16:11:27 +0200 Subject: [PATCH] perf: Antd icons tree shaking (#29787) Co-authored-by: Maxime Beauchemin --- .../src/components/Icons/AntdEnhanced.tsx | 87 ++++++++++++++++++- 1 file changed, 86 insertions(+), 1 deletion(-) diff --git a/superset-frontend/src/components/Icons/AntdEnhanced.tsx b/superset-frontend/src/components/Icons/AntdEnhanced.tsx index 703c909e2..f4ed96f6f 100644 --- a/superset-frontend/src/components/Icons/AntdEnhanced.tsx +++ b/superset-frontend/src/components/Icons/AntdEnhanced.tsx @@ -17,10 +17,95 @@ * under the License. */ -import * as AntdIcons from '@ant-design/icons/lib/icons'; +// NOTE: Targeted import (as opposed to `import *`) is important here for proper tree-shaking +import { + AlignCenterOutlined, + AlignLeftOutlined, + AlignRightOutlined, + ApartmentOutlined, + BarChartOutlined, + BookOutlined, + CalendarOutlined, + CheckOutlined, + CheckSquareOutlined, + CloseOutlined, + ConsoleSqlOutlined, + CopyOutlined, + DatabaseOutlined, + DeleteFilled, + DownOutlined, + EditOutlined, + ExclamationCircleOutlined, + EyeOutlined, + EyeInvisibleOutlined, + FallOutlined, + FileImageOutlined, + FileOutlined, + FireOutlined, + FullscreenExitOutlined, + FullscreenOutlined, + FundProjectionScreenOutlined, + InfoCircleOutlined, + InsertRowBelowOutlined, + MonitorOutlined, + PlusCircleOutlined, + PlusOutlined, + ReloadOutlined, + RightOutlined, + SaveOutlined, + SearchOutlined, + SettingOutlined, + StopOutlined, + TagsOutlined, + UpOutlined, + UserOutlined, +} from '@ant-design/icons'; import { StyledIcon } from './Icon'; import IconType from './IconType'; +const AntdIcons = { + AlignCenterOutlined, + AlignLeftOutlined, + AlignRightOutlined, + ApartmentOutlined, + BarChartOutlined, + BookOutlined, + CalendarOutlined, + CheckOutlined, + CheckSquareOutlined, + CloseOutlined, + ConsoleSqlOutlined, + CopyOutlined, + DatabaseOutlined, + DeleteFilled, + DownOutlined, + EditOutlined, + ExclamationCircleOutlined, + EyeOutlined, + EyeInvisibleOutlined, + FallOutlined, + FileImageOutlined, + FileOutlined, + FireOutlined, + FullscreenExitOutlined, + FullscreenOutlined, + FundProjectionScreenOutlined, + InfoCircleOutlined, + InsertRowBelowOutlined, + MonitorOutlined, + PlusCircleOutlined, + PlusOutlined, + ReloadOutlined, + RightOutlined, + SaveOutlined, + SearchOutlined, + SettingOutlined, + StopOutlined, + TagsOutlined, + UpOutlined, + UserOutlined, +}; + const AntdEnhancedIcons = Object.keys(AntdIcons) .filter(k => !k.includes('TwoTone')) .map(k => ({