From 18fbdeca372996e37a58cf79b4d07b8c6afd7e75 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 8 Dec 2025 00:34:57 +0900 Subject: refactor(client): replace inline SVGs with Font Awesome icons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrate all 28 inline SVG icons across 8 components to use Font Awesome React components for better maintainability and consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- src/client/components/OfflineBanner.tsx | 17 ++---- src/client/components/SyncButton.tsx | 38 +++---------- src/client/components/SyncStatusIndicator.tsx | 77 ++++++++------------------- 3 files changed, 36 insertions(+), 96 deletions(-) (limited to 'src/client/components') diff --git a/src/client/components/OfflineBanner.tsx b/src/client/components/OfflineBanner.tsx index bf94908..b33fc14 100644 --- a/src/client/components/OfflineBanner.tsx +++ b/src/client/components/OfflineBanner.tsx @@ -1,3 +1,5 @@ +import { faWifi } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useSync } from "../stores"; export function OfflineBanner() { @@ -13,20 +15,11 @@ export function OfflineBanner() { aria-live="polite" className="bg-slate text-white py-2 px-4 text-sm flex items-center justify-center gap-2" > - + /> You're offline. Changes will sync when you reconnect. {pendingCount > 0 && ( diff --git a/src/client/components/SyncButton.tsx b/src/client/components/SyncButton.tsx index 82a6c68..1c214ad 100644 --- a/src/client/components/SyncButton.tsx +++ b/src/client/components/SyncButton.tsx @@ -1,3 +1,5 @@ +import { faArrowsRotate, faSpinner } from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useSync } from "../stores"; export function SyncButton() { @@ -24,44 +26,20 @@ export function SyncButton() { > {isSyncing ? ( <> - + /> Syncing... ) : ( <> - + /> Sync )} diff --git a/src/client/components/SyncStatusIndicator.tsx b/src/client/components/SyncStatusIndicator.tsx index 0f555ca..dd1a77d 100644 --- a/src/client/components/SyncStatusIndicator.tsx +++ b/src/client/components/SyncStatusIndicator.tsx @@ -1,3 +1,11 @@ +import { + faCircle, + faCircleCheck, + faCircleXmark, + faClock, + faSpinner, +} from "@fortawesome/free-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { useSync } from "../stores"; import { SyncStatus } from "../sync"; @@ -39,85 +47,46 @@ export function SyncStatusIndicator() { const getStatusIcon = () => { if (!isOnline) { return ( - + /> ); } if (isSyncing) { return ( - + /> ); } if (status === SyncStatus.Error) { return ( - + /> ); } if (pendingCount > 0) { return ( - + /> ); } return ( - + /> ); }; -- cgit v1.2.3-70-g09d2