Blame view

天文台pc/tianwentai-ui/node_modules/lucide-react/dist/esm/DynamicIcon.js 1.2 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
  "use strict";
  "use client";
  /**
   * @license lucide-react v0.487.0 - ISC
   *
   * This source code is licensed under the ISC license.
   * See the LICENSE file in the root directory of this source tree.
   */
  
  import { forwardRef, useState, useEffect, createElement } from 'react';
  import dynamicIconImports from './dynamicIconImports.js';
  import Icon from './Icon.js';
  
  const iconNames = Object.keys(dynamicIconImports);
  async function getIconNode(name) {
    if (!(name in dynamicIconImports)) {
      throw new Error("[lucide-react]: Name in Lucide DynamicIcon not found");
    }
    const icon = await dynamicIconImports[name]();
    return icon.__iconNode;
  }
  const DynamicIcon = forwardRef(
    ({ name, fallback: Fallback, ...props }, ref) => {
      const [iconNode, setIconNode] = useState();
      useEffect(() => {
        getIconNode(name).then(setIconNode).catch((error) => {
          console.error(error);
        });
      }, [name]);
      if (iconNode == null) {
        if (Fallback == null) {
          return null;
        }
        return createElement(Fallback);
      }
      return createElement(Icon, {
        ref,
        ...props,
        iconNode
      });
    }
  );
  
  export { DynamicIcon as default, iconNames };
  //# sourceMappingURL=DynamicIcon.js.map