Skip to content

Commit 3e63cc5

Browse files
committed
[chrome] import icons directly from icon.ts to deduplicate iconset paths
1 parent 6cfedc7 commit 3e63cc5

File tree

12 files changed

+106
-54
lines changed

12 files changed

+106
-54
lines changed

packages/chrome/src/IsolatedFrame.tsx

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,17 @@ import { ElementType, type Handler, Parser } from "htmlparser2";
2121
import { type ChildNode, DomHandler, Element, Comment, Node } from "domhandler";
2222
import * as tldts from "tldts";
2323

24-
import iconBack from "@ktibow/iconset-ion/arrow-back";
25-
import iconForwards from "@ktibow/iconset-ion/arrow-forward";
26-
import iconRefresh from "@ktibow/iconset-ion/refresh";
27-
import iconBookmark from "@ktibow/iconset-ion/bookmark-outline";
28-
import iconCode from "@ktibow/iconset-ion/code-outline";
29-
import iconLink from "@ktibow/iconset-ion/link-outline";
30-
import iconAdd from "@ktibow/iconset-ion/duplicate-outline";
31-
import iconCopy from "@ktibow/iconset-ion/copy-outline";
32-
import iconSave from "@ktibow/iconset-ion/save-outline";
24+
import {
25+
iconBack,
26+
iconForwards,
27+
iconRefresh,
28+
iconBookmark,
29+
iconCode,
30+
iconLink,
31+
iconAdd,
32+
iconCopy,
33+
iconSave,
34+
} from "./icons";
3335

3436
import type { Chromebound, Framebound } from "../../inject/src/types";
3537
import type { Tab } from "./Tab";

packages/chrome/src/components/BookmarksStrip.tsx

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import { createState, css, type Component } from "dreamland/core";
22
import { Icon } from "./Icon";
3-
import iconAdd from "@ktibow/iconset-ion/add";
4-
import iconOpen from "@ktibow/iconset-ion/open-outline";
5-
import iconLink from "@ktibow/iconset-ion/link-outline";
6-
import iconBrush from "@ktibow/iconset-ion/brush-outline";
7-
import iconTrash from "@ktibow/iconset-ion/trash-outline";
3+
import { iconAdd, iconOpen, iconLink, iconBrush, iconTrash } from "../icons";
84
import { browser, type BookmarkEntry } from "../Browser";
95
import { createMenu, createMenuCustom, setContextMenu } from "./Menu";
106
import { BookmarkPopup } from "./BookmarkPopup";

packages/chrome/src/components/DownloadsPopup.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,7 @@ import { css, type Component } from "dreamland/core";
22
import { browser } from "../Browser";
33
import { Icon } from "./Icon";
44
import { closeMenu, createMenuCustom } from "./Menu";
5-
import iconClose from "@ktibow/iconset-ion/close";
6-
import iconFolder from "@ktibow/iconset-ion/folder-outline";
7-
import iconOpen from "@ktibow/iconset-ion/open-outline";
8-
import iconPause from "@ktibow/iconset-ion/pause-outline";
5+
import { iconClose, iconFolder, iconOpen, iconPause } from "../icons";
96
import { formatBytes } from "../utils";
107
import { defaultFaviconUrl } from "../assets/favicon";
118

packages/chrome/src/components/Omnibar/BookmarkButton.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import { createMenuCustom } from "../Menu";
55
import { BookmarkPopup } from "../BookmarkPopup";
66
import { emToPx } from "../../utils";
77

8-
import iconStar from "@ktibow/iconset-ion/star-outline";
9-
import iconStarFilled from "@ktibow/iconset-ion/star";
8+
import { iconStar, iconStarFilled } from "../../icons";
109

1110
export const BookmarkButton: Component<{
1211
url: URL;

packages/chrome/src/components/Omnibar/Omnibox.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
import { css, type Component } from "dreamland/core";
2-
import iconBack from "@ktibow/iconset-ion/arrow-back";
3-
import iconForwards from "@ktibow/iconset-ion/arrow-forward";
4-
import iconRefresh from "@ktibow/iconset-ion/refresh";
5-
import iconExtension from "@ktibow/iconset-ion/extension-puzzle-outline";
6-
import iconDownload from "@ktibow/iconset-ion/download-outline";
7-
import iconMore from "@ktibow/iconset-ion/more";
8-
import iconExit from "@ktibow/iconset-ion/exit-outline";
2+
import {
3+
iconBack,
4+
iconForwards,
5+
iconRefresh,
6+
iconExtension,
7+
iconDownload,
8+
iconMore,
9+
iconExit,
10+
iconNew,
11+
iconTime,
12+
iconInfo,
13+
iconSettings,
14+
} from "../../icons";
915
import { createMenu, createMenuCustom } from "../Menu";
1016
import { OmnibarButton } from "./OmnibarButton";
1117
import { createDelegate } from "dreamland/core";
@@ -15,10 +21,6 @@ import { browser } from "../../Browser";
1521
import { Icon } from "../Icon";
1622
import { defaultFaviconUrl } from "../../assets/favicon";
1723

18-
import iconNew from "@ktibow/iconset-ion/duplicate-outline";
19-
import iconTime from "@ktibow/iconset-ion/time-outline";
20-
import iconInfo from "@ktibow/iconset-ion/information-circle-outline";
21-
import iconSettings from "@ktibow/iconset-ion/settings-outline";
2224
import type { HistoryState } from "../../History";
2325
import { isPuter } from "../../main";
2426
import { DownloadsPopup } from "../DownloadsPopup";

packages/chrome/src/components/Omnibar/SiteOptionsButton.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { SiteInformationPopup } from "../SiteInformationPopup";
44
import { browser } from "../../Browser";
55
import { Icon } from "../Icon";
66
import { emToPx } from "../../utils";
7-
import iconOptions from "@ktibow/iconset-ion/options-outline";
7+
import { iconOptions } from "../../icons";
88

99
export const SiteOptionsButton: Component<{}> = function () {
1010
return (

packages/chrome/src/components/Omnibar/UrlInput.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,12 @@ import {
55
type Component,
66
type Delegate,
77
} from "dreamland/core";
8-
import iconSearch from "@ktibow/iconset-ion/search";
9-
import iconForwards from "@ktibow/iconset-ion/arrow-forward";
10-
import iconTrendingUp from "@ktibow/iconset-ion/trending-up";
8+
import { iconSearch, iconForwards, iconTrendingUp } from "../../icons";
119
import { Icon } from "../Icon";
1210
import { OmnibarButton } from "./OmnibarButton";
13-
import { createMenuCustom, setContextMenu } from "../Menu";
11+
import { setContextMenu } from "../Menu";
1412
import { defaultFaviconUrl } from "../../assets/favicon";
1513
import { browser } from "../../Browser";
16-
import { SiteInformationPopup } from "../SiteInformationPopup";
1714
import { emToPx, splitUrl } from "../../utils";
1815
import {
1916
fetchGoogleTrending,
@@ -22,7 +19,6 @@ import {
2219
type OmniboxResult,
2320
type TrendingQuery,
2421
} from "./suggestions";
25-
import { BookmarkPopup } from "../BookmarkPopup";
2622
import { trimUrl } from "./utils";
2723
import { BookmarkButton } from "./BookmarkButton";
2824
import { SiteOptionsButton } from "./SiteOptionsButton";

packages/chrome/src/components/SiteInformationPopup.tsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@ import { css, type Component } from "dreamland/core";
22
import type { Tab } from "../Tab";
33
import { splitUrl } from "../utils";
44

5-
import iconClose from "@ktibow/iconset-ion/close";
5+
import { iconClose, iconTrash, iconSettings } from "../icons";
66
import { Icon } from "./Icon";
77
import { SmallIconButton } from "./SmallIconButton";
88

9-
import iconTrash from "@ktibow/iconset-ion/trash-outline";
10-
import iconSettings from "@ktibow/iconset-ion/settings-outline";
119
import { closeMenu } from "./Menu";
1210

1311
export const SiteInformationPopup: Component<{

packages/chrome/src/components/TabStrip.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
import iconClose from "@ktibow/iconset-ion/close";
2-
import iconAdd from "@ktibow/iconset-ion/add";
3-
import iconNew from "@ktibow/iconset-ion/duplicate-outline";
4-
import iconDuplicate from "@ktibow/iconset-ion/copy-outline";
5-
import iconRefresh from "@ktibow/iconset-ion/refresh-outline";
1+
import {
2+
iconClose,
3+
iconAdd,
4+
iconNew,
5+
iconDuplicate,
6+
iconRefresh,
7+
} from "../icons";
68
import { css, type Component } from "dreamland/core";
79
import { Icon } from "./Icon";
810
import { memoize } from "../memoize";

packages/chrome/src/icons.ts

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
// Centralized icon re-exports
2+
// Export commonly-used icons from @ktibow/iconset-ion so other files can import from "/icons"
3+
//
4+
// Example usage after refactor:
5+
// import { iconBack, iconMore } from "/icons";
6+
7+
export { default as iconBack } from "@ktibow/iconset-ion/arrow-back";
8+
export { default as iconForwards } from "@ktibow/iconset-ion/arrow-forward";
9+
10+
export { default as iconRefresh } from "@ktibow/iconset-ion/refresh";
11+
export { default as iconRefreshOutline } from "@ktibow/iconset-ion/refresh-outline";
12+
13+
export { default as iconBookmark } from "@ktibow/iconset-ion/bookmark-outline";
14+
export { default as iconCode } from "@ktibow/iconset-ion/code-outline";
15+
16+
export { default as iconLink } from "@ktibow/iconset-ion/link-outline";
17+
18+
export { default as iconAdd } from "@ktibow/iconset-ion/add";
19+
// duplicate-outline is used in multiple places (alias both `iconNew` and `iconAddFromDuplicate`)
20+
export { default as iconNew } from "@ktibow/iconset-ion/duplicate-outline";
21+
export { default as iconAddFromDuplicate } from "@ktibow/iconset-ion/duplicate-outline";
22+
export { default as iconDuplicate } from "@ktibow/iconset-ion/copy-outline"; // alias for copy-outline usage
23+
export { default as iconCopy } from "@ktibow/iconset-ion/copy-outline";
24+
25+
export { default as iconSave } from "@ktibow/iconset-ion/save-outline";
26+
27+
export { default as iconOpen } from "@ktibow/iconset-ion/open-outline";
28+
export { default as iconBrush } from "@ktibow/iconset-ion/brush-outline";
29+
export { default as iconTrash } from "@ktibow/iconset-ion/trash-outline";
30+
31+
export { default as iconClose } from "@ktibow/iconset-ion/close";
32+
export { default as iconCloseOutline } from "@ktibow/iconset-ion/close-outline";
33+
34+
export { default as iconFolder } from "@ktibow/iconset-ion/folder-outline";
35+
export { default as iconPause } from "@ktibow/iconset-ion/pause-outline";
36+
37+
export { default as iconStar } from "@ktibow/iconset-ion/star-outline";
38+
export { default as iconStarFilled } from "@ktibow/iconset-ion/star";
39+
40+
export { default as iconExtension } from "@ktibow/iconset-ion/extension-puzzle-outline";
41+
export { default as iconDownload } from "@ktibow/iconset-ion/download-outline";
42+
43+
export { default as iconMore } from "@ktibow/iconset-ion/more";
44+
export { default as iconExit } from "@ktibow/iconset-ion/exit-outline";
45+
46+
export { default as iconTime } from "@ktibow/iconset-ion/time-outline";
47+
export { default as iconInfo } from "@ktibow/iconset-ion/information-circle-outline";
48+
// alias commonly used name
49+
export { default as iconAbout } from "@ktibow/iconset-ion/information-circle-outline";
50+
51+
export { default as iconSettings } from "@ktibow/iconset-ion/settings-outline";
52+
export { default as iconOptions } from "@ktibow/iconset-ion/options-outline";
53+
54+
export { default as iconSearch } from "@ktibow/iconset-ion/search";
55+
export { default as iconSearchOutline } from "@ktibow/iconset-ion/search-outline";
56+
export { default as iconTrendingUp } from "@ktibow/iconset-ion/trending-up";
57+
58+
export { default as iconShield } from "@ktibow/iconset-ion/shield-checkmark-outline";
59+
// alias used in codebase
60+
export { default as iconPrivacy } from "@ktibow/iconset-ion/shield-checkmark-outline";

0 commit comments

Comments
 (0)