refactor(ui): simplify AppSwitcher styles and migrate to local SVG icons

- Replace complex gradient animations with clean, minimal tab design
- Migrate from @lobehub/icons CDN to local SVG assets for better reliability
- Fix clippy warning in error.rs (use inline format args)
- Improve code formatting in skill service and commands
- Reduce CSS complexity in AppSwitcher component (removed blur effects and gradients)
- Update BrandIcons to use imported local SVG files instead of dynamic image loading

This improves performance, reduces external dependencies, and provides a cleaner UI experience.
This commit is contained in:
YoVinchen
2025-11-22 01:20:21 +08:00
parent e7545f8cdf
commit de7f93d513
8 changed files with 64 additions and 123 deletions

View File

@@ -58,7 +58,7 @@ function App() {
const mcpPanelRef = useRef<any>(null);
const skillsPageRef = useRef<any>(null);
const addActionButtonClass =
"bg-primary hover:bg-primary/90 text-primary-foreground shadow-lg shadow-primary/20 rounded-full w-8 h-8";
"bg-orange-500 hover:bg-orange-600 dark:bg-orange-500 dark:hover:bg-orange-600 text-white shadow-lg shadow-orange-500/30 dark:shadow-orange-500/40 rounded-full w-8 h-8";
const { data, isLoading, refetch } = useProvidersQuery(activeApp);
const providers = useMemo(() => data?.providers ?? {}, [data]);
@@ -281,7 +281,7 @@ function App() {
return <AgentsPanel onOpenChange={() => setCurrentView("providers")} />;
default:
return (
<div className="mx-auto max-w-5xl space-y-4">
<div className="mx-auto max-w-4xl space-y-4">
<ProviderList
providers={providers}
currentProviderId={currentProviderId}
@@ -509,9 +509,8 @@ function App() {
</header>
<main
className={`flex-1 overflow-y-auto pb-12 px-6 animate-fade-in scroll-overlay ${
currentView === "providers" ? "pt-24" : "pt-20"
}`}
className={`flex-1 overflow-y-auto pb-12 px-6 animate-fade-in scroll-overlay ${currentView === "providers" ? "pt-24" : "pt-20"
}`}
style={{ overflowX: "hidden" }}
>
{renderContent()}
@@ -554,8 +553,8 @@ function App() {
message={
confirmDelete
? t("confirm.deleteProviderMessage", {
name: confirmDelete.name,
})
name: confirmDelete.name,
})
: ""
}
onConfirm={() => void handleConfirmDelete()}