Ben Lin
2024-06-18 ebbd788fbb2c0b45d4473798efc57eec8ba74a25
src/utils/factory/createAsyncComponent.tsx
@@ -1,9 +1,12 @@
import {
  AsyncComponentLoader,
  Component,
  ComponentPublicInstance,
  defineAsyncComponent,
  // FunctionalComponent, CSSProperties
} from 'vue';
import { Spin } from 'ant-design-vue';
import { noop } from '/@/utils';
import { noop } from '@/utils';
// const Loading: FunctionalComponent<{ size: 'small' | 'default' | 'large' }> = (props) => {
//   const style: CSSProperties = {
@@ -27,7 +30,11 @@
  retry?: boolean;
}
export function createAsyncComponent(loader: Fn, options: Options = {}) {
export function createAsyncComponent<
  T extends Component = {
    new (): ComponentPublicInstance;
  },
>(loader: AsyncComponentLoader<T>, options: Options = {}) {
  const { size = 'small', delay = 100, timeout = 30000, loading = false, retry = true } = options;
  return defineAsyncComponent({
    loader,