style: update hooks icon to FishingHook

Replace Pickaxe with FishingHook icon from lucide-react.
Upgrade lucide-react from 0.518.0 to 0.562.0 for FishingHook support.
This commit is contained in:
Toray Altas 2026-01-17 12:54:57 -05:00
parent cd3ef8e4bf
commit 2cac5639dc
5 changed files with 77 additions and 20 deletions

74
pnpm-lock.yaml generated
View file

@ -1194,8 +1194,8 @@ importers:
specifier: ^11.1.0
version: 11.1.0
lucide-react:
specifier: ^0.518.0
version: 0.518.0(react@18.3.1)
specifier: ^0.562.0
version: 0.562.0(react@18.3.1)
mermaid:
specifier: ^11.4.1
version: 11.10.0
@ -1602,6 +1602,10 @@ packages:
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'}
'@babel/code-frame@7.28.6':
resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==}
engines: {node: '>=6.9.0'}
'@babel/compat-data@7.27.2':
resolution: {integrity: sha512-TUtMJYRPyUb/9aU8f3K0mjmjf6M9N5Woshn2CS6nqJSeJtTtQcpLUXjGt9vbF8ZGff0El99sWkLgzwW3VXnxZQ==}
engines: {node: '>=6.9.0'}
@ -1640,6 +1644,10 @@ packages:
resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-identifier@7.28.5':
resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
engines: {node: '>=6.9.0'}
'@babel/helper-validator-option@7.27.1':
resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
engines: {node: '>=6.9.0'}
@ -1681,6 +1689,10 @@ packages:
resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==}
engines: {node: '>=6.9.0'}
'@babel/runtime@7.28.6':
resolution: {integrity: sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA==}
engines: {node: '>=6.9.0'}
'@babel/template@7.27.2':
resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==}
engines: {node: '>=6.9.0'}
@ -4273,6 +4285,9 @@ packages:
'@types/node@20.17.57':
resolution: {integrity: sha512-f3T4y6VU4fVQDKVqJV4Uppy8c1p/sVvS3peyqxyWnzkqXFJLRU7Y1Bl7rMS1Qe9z0v4M6McY0Fp9yBsgHJUsWQ==}
'@types/node@20.19.30':
resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==}
'@types/node@24.2.1':
resolution: {integrity: sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==}
@ -7685,6 +7700,11 @@ packages:
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
lucide-react@0.562.0:
resolution: {integrity: sha512-82hOAu7y0dbVuFfmO4bYF1XEwYk/mEbM5E+b1jgci/udUBEE/R7LF5Ip0CCEmXe8AybRM8L+04eP+LGZeDvkiw==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@ -9995,6 +10015,9 @@ packages:
undici-types@6.19.8:
resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
undici-types@6.21.0:
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
@ -10520,6 +10543,18 @@ packages:
utf-8-validate:
optional: true
ws@8.19.0:
resolution: {integrity: sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
xml-name-validator@5.0.0:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
@ -11355,6 +11390,12 @@ snapshots:
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/code-frame@7.28.6':
dependencies:
'@babel/helper-validator-identifier': 7.28.5
js-tokens: 4.0.0
picocolors: 1.1.1
'@babel/compat-data@7.27.2': {}
'@babel/core@7.27.1':
@ -11415,6 +11456,8 @@ snapshots:
'@babel/helper-validator-identifier@7.27.1': {}
'@babel/helper-validator-identifier@7.28.5': {}
'@babel/helper-validator-option@7.27.1': {}
'@babel/helpers@7.27.1':
@ -11444,6 +11487,8 @@ snapshots:
'@babel/runtime@7.28.4': {}
'@babel/runtime@7.28.6': {}
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
@ -12110,7 +12155,7 @@ snapshots:
'@libsql/isomorphic-ws@0.1.5':
dependencies:
'@types/ws': 8.18.1
ws: 8.18.3
ws: 8.19.0
transitivePeerDependencies:
- bufferutil
- utf-8-validate
@ -13910,8 +13955,8 @@ snapshots:
'@testing-library/dom@10.4.0':
dependencies:
'@babel/code-frame': 7.27.1
'@babel/runtime': 7.28.4
'@babel/code-frame': 7.28.6
'@babel/runtime': 7.28.6
'@types/aria-query': 5.0.4
aria-query: 5.3.0
chalk: 4.1.2
@ -14212,6 +14257,11 @@ snapshots:
dependencies:
undici-types: 6.19.8
'@types/node@20.19.30':
dependencies:
undici-types: 6.21.0
optional: true
'@types/node@24.2.1':
dependencies:
undici-types: 7.10.0
@ -14285,7 +14335,7 @@ snapshots:
'@types/ws@8.18.1':
dependencies:
'@types/node': 24.2.1
'@types/node': 20.19.30
optional: true
'@types/yargs-parser@21.0.3': {}
@ -14464,7 +14514,7 @@ snapshots:
sirv: 3.0.1
tinyglobby: 0.2.14
tinyrainbow: 2.0.0
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@24.2.1)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)
vitest: 3.2.4(@types/debug@4.1.12)(@types/node@20.17.57)(@vitest/ui@3.2.4)(jiti@2.4.2)(jsdom@26.1.0)(lightningcss@1.30.1)(tsx@4.19.4)(yaml@2.8.0)
'@vitest/utils@3.2.4':
dependencies:
@ -18007,6 +18057,10 @@ snapshots:
dependencies:
react: 18.3.1
lucide-react@0.562.0(react@18.3.1):
dependencies:
react: 18.3.1
lz-string@1.5.0: {}
macos-release@3.3.0: {}
@ -20861,6 +20915,9 @@ snapshots:
undici-types@6.19.8: {}
undici-types@6.21.0:
optional: true
undici-types@7.10.0: {}
undici@6.21.3: {}
@ -21576,6 +21633,9 @@ snapshots:
ws@8.18.3: {}
ws@8.19.0:
optional: true
xml-name-validator@5.0.0: {}
xml2js@0.5.0:

View file

@ -50,7 +50,7 @@
"katex": "^0.16.11",
"knuth-shuffle-seeded": "^1.0.6",
"lru-cache": "^11.1.0",
"lucide-react": "^0.518.0",
"lucide-react": "^0.562.0",
"mermaid": "^11.4.1",
"posthog-js": "^1.227.2",
"pretty-bytes": "^7.0.0",

View file

@ -67,6 +67,7 @@ import {
TerminalSquare,
MessageCircle,
Repeat2,
FishingHook,
} from "lucide-react"
import { cn } from "@/lib/utils"
import { PathTooltip } from "../ui/PathTooltip"
@ -1375,11 +1376,7 @@ export const ChatRowContent = ({
color: "var(--vscode-descriptionForeground)",
fontSize: "12px",
}}>
<span
className="codicon codicon-symbol-event"
style={{ fontSize: "14px" }}
aria-label="Hook icon"
/>
<FishingHook className="w-3.5 h-3.5" aria-label="Hook icon" />
<span>Hook: {message.text} triggered</span>
</div>
)

View file

@ -1,5 +1,5 @@
import React, { useCallback, useEffect, useState } from "react"
import { RefreshCw, FolderOpen, AlertTriangle, Clock, Zap, X, Plus } from "lucide-react"
import { RefreshCw, FolderOpen, AlertTriangle, Clock, FishingHook, X, Plus } from "lucide-react"
import { VSCodePanels, VSCodePanelTab, VSCodePanelView } from "@vscode/webview-ui-toolkit/react"
import { useAppTranslation } from "@src/i18n/TranslationContext"
import { useExtensionState } from "@src/context/ExtensionStateContext"
@ -173,7 +173,7 @@ export const HooksSettings: React.FC = () => {
{/* Hooks list */}
{enabledHooks.length === 0 ? (
<div className="text-center py-8 text-vscode-descriptionForeground">
<Zap className="w-12 h-12 mx-auto mb-3 opacity-50" />
<FishingHook className="w-12 h-12 mx-auto mb-3 opacity-50" />
<p className="text-base mb-2">{t("settings:hooks.noHooksConfigured")}</p>
<p className="text-sm">{t("settings:hooks.noHooksHint")}</p>
</div>
@ -316,7 +316,7 @@ const HookItem: React.FC<HookItemProps> = ({ hook, onToggle }) => {
▶
</span>
<div className="flex items-center gap-2 flex-1 min-w-0">
<Zap className="w-4 h-4 flex-shrink-0 text-vscode-textLink-foreground" />
<FishingHook className="w-4 h-4 flex-shrink-0 text-vscode-textLink-foreground" />
<code className="text-sm font-mono text-vscode-textLink-foreground truncate">{hook.id}</code>
<span
className={`ml-auto text-xs px-2 py-0.5 rounded flex-shrink-0 ${
@ -512,7 +512,7 @@ const HookLogItem: React.FC<HookLogItemProps> = ({ record }) => {
return {
label: t("settings:hooks.status.completed"),
className: "bg-green-500/20 text-green-500",
icon: <Zap className="w-3 h-3" />,
icon: <FishingHook className="w-3 h-3" />,
}
}
@ -622,7 +622,7 @@ const ActivityLogItem: React.FC<ActivityLogItemProps> = ({ record }) => {
return {
label: t("settings:hooks.status.completed"),
className: "bg-green-500/20 text-green-500",
icon: <Zap className="w-3 h-3" />,
icon: <FishingHook className="w-3 h-3" />,
}
}

View file

@ -28,7 +28,7 @@ import {
Server,
Users2,
ArrowLeft,
Zap,
FishingHook,
} from "lucide-react"
import {
@ -528,7 +528,7 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
{ id: "mcp", icon: Server },
{ id: "autoApprove", icon: CheckCheck },
{ id: "slashCommands", icon: SquareSlash },
{ id: "hooks", icon: Zap },
{ id: "hooks", icon: FishingHook },
{ id: "browser", icon: SquareMousePointer },
{ id: "checkpoints", icon: GitBranch },
{ id: "notifications", icon: Bell },