Skip to content

Commit b60f2ea

Browse files
committed
feat(projects): add components auto-import
1 parent aa3bc09 commit b60f2ea

File tree

6 files changed

+50
-27
lines changed

6 files changed

+50
-27
lines changed

build/plugins/auto-import.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@ export function setupAutoImport(viteEnv: Env.ImportMeta) {
66
return AutoImport({
77
imports: ['react', 'react-router-dom', 'react-i18next', 'ahooks', { from: 'react', imports: ['FC'], type: true }],
88
include: [/\.[tj]sx?$/],
9-
dirs: ['src/hooks/**'],
9+
dirs: ['src/hooks/**','src/components/**'],
1010
dts: 'src/types/auto-imports.d.ts',
1111
resolvers: [
1212
IconsResolver({
1313
prefix: VITE_ICON_PREFIX,
14-
extension: 'jsx',
14+
extension: 'tsx',
1515
customCollections: [collectionName],
1616
componentPrefix: VITE_ICON_PREFIX
17-
})
17+
}),
18+
// (componentName) => {
19+
// // where `componentName` is always CapitalCase
20+
// if (componentName.startsWith('A'))
21+
// return { name: componentName.slice(1), from: 'antd' }
22+
// },
1823
]
1924
});
2025
}

eslint.config.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,8 @@ export default defineConfig(
1212
},
1313
{
1414
rules: {
15-
'react/jsx-pascal-case': [
16-
'warn',
17-
{
18-
allowAllCaps: false,
19-
ignore: ['/^icon-/']
20-
}
21-
],
22-
'no-underscore-dangle': 'off'
15+
'no-underscore-dangle': 'off',
16+
'react/jsx-no-undef': [true, { allowGlobals: true }]
2317
}
2418
}
2519
);

packages/simple-router/src/matcher/shared.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export function generatePath(pathTemplate: string, params: { [key: string]: stri
4242
*/
4343
export function normalizeRouteRecord(record: ElegantConstRoute): RouteRecordNormalized {
4444
return {
45-
redirect: record.redirectTo,
45+
redirect: record.redirect,
4646
path: record.path || '',
4747
name: record.name,
4848
meta: record.meta || {},

src/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import MenuProvider from '@/components/common/MenuProvider.tsx';
88
import { router } from '@/router';
99
import { antdLocales } from './locales/antd';
1010
import AppProvider from './components/common/AppProvider.tsx';
11-
import GlobalLoading from './components/common/GlobalLoading.tsx';
11+
1212

1313
const App = () => {
1414
const locale = useAppSelector(getLocale);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { SVGProps } from 'react';
22

33
const SystemLogo = memo((props: SVGProps<SVGSVGElement>) => {
4-
return IconLocalLogo({ ...props });
4+
return <IconLocalLogo {...props} />;
55
});
66

77
export default SystemLogo;

src/types/auto-imports.d.ts

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,47 @@
55
// Generated by unplugin-auto-import
66
export {}
77
declare global {
8-
const IconAntDesignReloadOutlined: typeof import('~icons/ant-design/reload-outlined.jsx')['default']
9-
const IconAntDesignSettingOutlined: typeof import('~icons/ant-design/setting-outlined.jsx')['default']
10-
const IconGridiconsFullscreen: typeof import('~icons/gridicons/fullscreen.jsx')['default']
11-
const IconGridiconsFullscreenExit: typeof import('~icons/gridicons/fullscreen-exit.jsx')['default']
12-
const IconIcRoundDelete: typeof import('~icons/ic/round-delete.jsx')['default']
13-
const IconIcRoundPlus: typeof import('~icons/ic/round-plus.jsx')['default']
14-
const IconIcRoundRefresh: typeof import('~icons/ic/round-refresh.jsx')['default']
15-
const IconIcRoundSearch: typeof import('~icons/ic/round-search.jsx')['default']
16-
const IconLocalBanner: typeof import('~icons/local/banner.jsx')['default']
17-
const IconLocalLogo: typeof import('~icons/local/logo.jsx')['default']
18-
const IconMdiDrag: typeof import('~icons/mdi/drag.jsx')['default']
19-
const IconMdiRefresh: typeof import('~icons/mdi/refresh.jsx')['default']
20-
const IconUilSearch: typeof import('~icons/uil/search.jsx')['default']
8+
const AppProvider: typeof import('../components/common/AppProvider')['default']
9+
const BetterScroll: typeof import('../components/custom/BetterScroll')['default']
10+
const BeyondHiding: typeof import('../components/custom/BeyondHiding')['default']
11+
const DarkModeContainer: typeof import('../components/common/DarkModeContainer')['default']
12+
const DragContent: typeof import('../components/advanced/DragContent')['default']
13+
const ErrorBoundary: typeof import('../components/common/ErrorBoundary')['default']
14+
const ExceptionBase: typeof import('../components/common/ExceptionBase')['default']
15+
const FullScreen: typeof import('../components/common/FullScreen')['default']
16+
const GlobalLoading: typeof import('../components/common/GlobalLoading')['default']
17+
const IconAntDesignReloadOutlined: typeof import('~icons/ant-design/reload-outlined.tsx')['default']
18+
const IconAntDesignSettingOutlined: typeof import('~icons/ant-design/setting-outlined.tsx')['default']
19+
const IconGridiconsFullscreen: typeof import('~icons/gridicons/fullscreen.tsx')['default']
20+
const IconGridiconsFullscreenExit: typeof import('~icons/gridicons/fullscreen-exit.tsx')['default']
21+
const IconIcRoundDelete: typeof import('~icons/ic/round-delete.tsx')['default']
22+
const IconIcRoundPlus: typeof import('~icons/ic/round-plus.tsx')['default']
23+
const IconIcRoundRefresh: typeof import('~icons/ic/round-refresh.tsx')['default']
24+
const IconIcRoundSearch: typeof import('~icons/ic/round-search.tsx')['default']
25+
const IconLocalBanner: typeof import('~icons/local/banner.tsx')['default']
26+
const IconLocalLogo: typeof import('~icons/local/logo.tsx')['default']
27+
const IconMdiDrag: typeof import('~icons/mdi/drag.tsx')['default']
28+
const IconMdiRefresh: typeof import('~icons/mdi/refresh.tsx')['default']
29+
const IconUilSearch: typeof import('~icons/uil/search.tsx')['default']
30+
const LangSwitch: typeof import('../components/common/LangSwitch')['default']
2131
const Link: typeof import('react-router-dom')['Link']
32+
const LookForward: typeof import('../components/custom/LookForward')['default']
33+
const MenuContext: typeof import('../components/common/MenuProvider')['MenuContext']
34+
const MenuProvider: typeof import('../components/common/MenuProvider')['default']
35+
const MenuToggler: typeof import('../components/common/MenuToggler')['default']
2236
const NavLink: typeof import('react-router-dom')['NavLink']
2337
const Navigate: typeof import('react-router-dom')['Navigate']
2438
const Outlet: typeof import('react-router-dom')['Outlet']
39+
const PinToggler: typeof import('../components/common/PinToggler')['default']
40+
const ReloadButton: typeof import('../components/common/ReloadButton')['default']
2541
const Route: typeof import('react-router-dom')['Route']
2642
const Routes: typeof import('react-router-dom')['Routes']
43+
const SoybeanAvatar: typeof import('../components/custom/SoybeanAvatar')['default']
44+
const TableColumnSetting: typeof import('../components/advanced/TableColumnSetting')['default']
45+
const TableHeaderOperation: typeof import('../components/advanced/TableHeaderOperation')['default']
46+
const ThemeSchemaSwitch: typeof import('../components/common/ThemeSchemaSwitch')['default']
2747
const addThemeVarsToHtml: typeof import('../hooks/business/useTheme/shared')['addThemeVarsToHtml']
48+
const buttonIcon: typeof import('../components/custom/button-icon')['default']
2849
const createRef: typeof import('react')['createRef']
2950
const createThemeToken: typeof import('../hooks/business/useTheme/shared')['createThemeToken']
3051
const forwardRef: typeof import('react')['forwardRef']
@@ -35,6 +56,8 @@ declare global {
3556
const memo: typeof import('react')['memo']
3657
const reducer: typeof import('../hooks/common/echarts')['reducer']
3758
const startTransition: typeof import('react')['startTransition']
59+
const svgIcon: typeof import('../components/custom/svg-icon')['default']
60+
const systemLogo: typeof import('../components/common/system-logo')['default']
3861
const toggleCssDarkMode: typeof import('../hooks/business/useTheme/shared')['toggleCssDarkMode']
3962
const useAntdTable: typeof import('ahooks')['useAntdTable']
4063
const useApp: typeof import('../hooks/business/useApp')['default']
@@ -160,6 +183,7 @@ declare global {
160183
const useVirtualList: typeof import('ahooks')['useVirtualList']
161184
const useWebSocket: typeof import('ahooks')['useWebSocket']
162185
const useWhyDidYouUpdate: typeof import('ahooks')['useWhyDidYouUpdate']
186+
const waveBg: typeof import('../components/custom/wave-bg')['default']
163187
}
164188
// for type re-export
165189
declare global {

0 commit comments

Comments
 (0)