From 339e290dba5ecae22924f12e55da3742d47f662a Mon Sep 17 00:00:00 2001 From: rusconn Date: Sat, 30 Mar 2024 09:08:26 +0900 Subject: [PATCH] refactor: export icons -> export icon1, export icon2, ... --- app/converters/json-yaml/page.tsx | 2 +- app/converters/number-base/page.tsx | 2 +- app/formatters/json/page.tsx | 2 +- app/generators/hash/page.tsx | 2 +- app/generators/uuid/page.tsx | 2 +- app/settings/page.tsx | 2 +- components/buttons/clear.tsx | 2 +- components/buttons/copy.tsx | 2 +- components/buttons/file.tsx | 2 +- components/buttons/paste.tsx | 2 +- components/icons.tsx | 106 ++++++++++------------------ components/sidebar/search-bar.tsx | 2 +- components/sidebar/tool-group.tsx | 2 +- components/site-header.tsx | 2 +- components/theme-toggle.tsx | 2 +- components/ui/select.tsx | 2 +- config/tools.ts | 6 +- 17 files changed, 55 insertions(+), 87 deletions(-) diff --git a/app/converters/json-yaml/page.tsx b/app/converters/json-yaml/page.tsx index 2066d4b..f49241a 100644 --- a/app/converters/json-yaml/page.tsx +++ b/app/converters/json-yaml/page.tsx @@ -12,7 +12,7 @@ import * as Button from "@/components/buttons"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; diff --git a/app/converters/number-base/page.tsx b/app/converters/number-base/page.tsx index 9ef8536..de0454a 100644 --- a/app/converters/number-base/page.tsx +++ b/app/converters/number-base/page.tsx @@ -9,7 +9,7 @@ import * as Button from "@/components/buttons"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { LabeledSwitch } from "@/components/labeled-switch"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; diff --git a/app/formatters/json/page.tsx b/app/formatters/json/page.tsx index c352e06..3472ce5 100644 --- a/app/formatters/json/page.tsx +++ b/app/formatters/json/page.tsx @@ -10,7 +10,7 @@ import * as Button from "@/components/buttons"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; diff --git a/app/generators/hash/page.tsx b/app/generators/hash/page.tsx index a647ede..40cdebd 100644 --- a/app/generators/hash/page.tsx +++ b/app/generators/hash/page.tsx @@ -10,7 +10,7 @@ import * as Button from "@/components/buttons"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { LabeledSwitch } from "@/components/labeled-switch"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; diff --git a/app/generators/uuid/page.tsx b/app/generators/uuid/page.tsx index dd43dd8..ccdfd99 100644 --- a/app/generators/uuid/page.tsx +++ b/app/generators/uuid/page.tsx @@ -15,7 +15,7 @@ import { Copy } from "@/components/buttons/copy"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; import { ControlMenu } from "@/components/control-menu"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { LabeledSwitch } from "@/components/labeled-switch"; import { PageRootSection } from "@/components/page-root-section"; import { PageSection } from "@/components/page-section"; diff --git a/app/settings/page.tsx b/app/settings/page.tsx index 67e6a88..a1eabd0 100644 --- a/app/settings/page.tsx +++ b/app/settings/page.tsx @@ -6,7 +6,7 @@ import { singleTools } from "@/config/tools"; import * as Select from "@/components/ui/select"; import { Configuration } from "@/components/configuration"; import { Configurations } from "@/components/configurations"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { PageRootSection } from "@/components/page-root-section"; export default function Page() { diff --git a/components/buttons/clear.tsx b/components/buttons/clear.tsx index 47a14e7..54b632a 100644 --- a/components/buttons/clear.tsx +++ b/components/buttons/clear.tsx @@ -1,7 +1,7 @@ import { memo } from "react"; import equal from "react-fast-compare"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { Base, BaseProps } from "./base"; diff --git a/components/buttons/copy.tsx b/components/buttons/copy.tsx index 9f525ca..88d789d 100644 --- a/components/buttons/copy.tsx +++ b/components/buttons/copy.tsx @@ -1,7 +1,7 @@ import { memo, useCallback } from "react"; import equal from "react-fast-compare"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { Base, BaseProps } from "./base"; diff --git a/components/buttons/file.tsx b/components/buttons/file.tsx index 9a8d91d..d02828b 100644 --- a/components/buttons/file.tsx +++ b/components/buttons/file.tsx @@ -1,7 +1,7 @@ import { memo, useCallback, useRef } from "react"; import equal from "react-fast-compare"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { Base, BaseProps } from "./base"; diff --git a/components/buttons/paste.tsx b/components/buttons/paste.tsx index 0ac9383..1358a9f 100644 --- a/components/buttons/paste.tsx +++ b/components/buttons/paste.tsx @@ -1,7 +1,7 @@ import { memo, useCallback } from "react"; import equal from "react-fast-compare"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { Base, BaseProps } from "./base"; diff --git a/components/icons.tsx b/components/icons.tsx index 1f2b65a..d26e90a 100644 --- a/components/icons.tsx +++ b/components/icons.tsx @@ -1,73 +1,41 @@ import { memo, MemoExoticComponent } from "react"; -import { - AlignLeft, - ArrowRightLeft, - Binary, - Braces, - CaseSensitive, - Check, - ChevronDown, - Clipboard, - Code2, - Copy, - Equal, - FileIcon, - Fingerprint, - Hash, - Home, - Key, - Link2, - LucideProps, - Minus, - Moon, - PackagePlus, - Paintbrush2, - Search, - Settings, - Settings2, - Space, - SunMedium, - X, - type Icon as LucideIcon, -} from "lucide-react"; +import * as icons from "lucide-react"; import equal from "react-fast-compare"; -export type Icon = LucideIcon | MemoExoticComponent; +export type Icon = icons.LucideIcon | MemoExoticComponent; -export const icons = { - AlignLeft: memo(AlignLeft, equal), - ArrowRightLeft: memo(ArrowRightLeft, equal), - Binary: memo(Binary, equal), - Braces: memo(Braces, equal), - CaseSensitive: memo(CaseSensitive, equal), - Check: memo(Check, equal), - ChevronDown: memo(ChevronDown, equal), - Clipboard: memo(Clipboard, equal), - Code: memo(Code2, equal), - Copy: memo(Copy, equal), - Equal: memo(Equal, equal), - File: memo(FileIcon, equal), - Fingerprint: memo(Fingerprint, equal), - Hash: memo(Hash, equal), - Home: memo(Home, equal), - Key: memo(Key, equal), - Link: memo(Link2, equal), - PackagePlus: memo(PackagePlus, equal), - Paintbrush: memo(Paintbrush2, equal), - Search: memo(Search, equal), - Settings: memo(Settings, equal), - Settings2: memo(Settings2, equal), - Space: memo(Space, equal), - Sun: memo(SunMedium, equal), - Minus: memo(Minus, equal), - Moon: memo(Moon, equal), - X: memo(X, equal), - GitHub: (props: LucideProps) => ( - - - - ), -}; +export const AlignLeft = memo(icons.AlignLeft, equal); +export const ArrowRightLeft = memo(icons.ArrowRightLeft, equal); +export const Binary = memo(icons.Binary, equal); +export const Braces = memo(icons.Braces, equal); +export const CaseSensitive = memo(icons.CaseSensitive, equal); +export const Check = memo(icons.Check, equal); +export const ChevronDown = memo(icons.ChevronDown, equal); +export const Clipboard = memo(icons.Clipboard, equal); +export const Code = memo(icons.Code2, equal); +export const Copy = memo(icons.Copy, equal); +export const Equal = memo(icons.Equal, equal); +export const File = memo(icons.FileIcon, equal); +export const Fingerprint = memo(icons.Fingerprint, equal); +export const Hash = memo(icons.Hash, equal); +export const Home = memo(icons.Home, equal); +export const Key = memo(icons.Key, equal); +export const Link = memo(icons.Link2, equal); +export const PackagePlus = memo(icons.PackagePlus, equal); +export const Paintbrush = memo(icons.Paintbrush2, equal); +export const Search = memo(icons.Search, equal); +export const Settings = memo(icons.Settings, equal); +export const Settings2 = memo(icons.Settings2, equal); +export const Space = memo(icons.Space, equal); +export const Sun = memo(icons.SunMedium, equal); +export const Minus = memo(icons.Minus, equal); +export const Moon = memo(icons.Moon, equal); +export const X = memo(icons.X, equal); +export const GitHub = (props: icons.LucideProps) => ( + + + +); diff --git a/components/sidebar/search-bar.tsx b/components/sidebar/search-bar.tsx index 67b19fc..258b6ef 100644 --- a/components/sidebar/search-bar.tsx +++ b/components/sidebar/search-bar.tsx @@ -6,7 +6,7 @@ import { useRouter } from "next/navigation"; import { cn } from "@/lib/style"; import { Button, ButtonProps } from "@/components/ui/button"; import { Input, InputProps } from "@/components/ui/input"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { useSetSearchText } from "@/contexts/search-text"; export function SearchBar() { diff --git a/components/sidebar/tool-group.tsx b/components/sidebar/tool-group.tsx index d92ab33..65ca6eb 100644 --- a/components/sidebar/tool-group.tsx +++ b/components/sidebar/tool-group.tsx @@ -6,7 +6,7 @@ import * as Accordion from "@radix-ui/react-accordion"; import { ToolGroup as IToolGroup } from "@/config/tools"; import { cn } from "@/lib/style"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { ToolLink } from "./tool-link"; diff --git a/components/site-header.tsx b/components/site-header.tsx index f083d7c..4b1b72c 100644 --- a/components/site-header.tsx +++ b/components/site-header.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import { siteConfig } from "@/config/site"; import { cn } from "@/lib/style"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { ThemeToggle } from "@/components/theme-toggle"; type Props = { diff --git a/components/theme-toggle.tsx b/components/theme-toggle.tsx index b6da07d..1b6142d 100644 --- a/components/theme-toggle.tsx +++ b/components/theme-toggle.tsx @@ -3,7 +3,7 @@ import { useTheme } from "next-themes"; import { Button } from "@/components/ui/button"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; export function ThemeToggle() { const { resolvedTheme, setTheme } = useTheme(); diff --git a/components/ui/select.tsx b/components/ui/select.tsx index 9787bc2..37ef0cb 100644 --- a/components/ui/select.tsx +++ b/components/ui/select.tsx @@ -4,7 +4,7 @@ import * as React from "react"; import * as SelectPrimitive from "@radix-ui/react-select"; import { cn } from "@/lib/style"; -import { icons } from "@/components/icons"; +import * as icons from "@/components/icons"; import { Indicator } from "@/components/indicator"; export type Props = React.ComponentPropsWithoutRef; diff --git a/config/tools.ts b/config/tools.ts index f4c5df6..f4cc38d 100644 --- a/config/tools.ts +++ b/config/tools.ts @@ -1,19 +1,19 @@ import { ValidHref } from "@/types/route"; -import { icons, type Icon } from "@/components/icons"; +import * as icons from "@/components/icons"; type ToolGroups = { [key: string]: ToolGroup; }; export type ToolGroup = { - Icon: Icon; + Icon: icons.Icon; title: string; href: ValidHref; tools: { [key: string]: Tool }; }; export type Tool = { - Icon: Icon; + Icon: icons.Icon; shortTitle: string; longTitle: string; description: string;