From 72d452f75e24d377fe600a4ce85839db0332a9db Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Thu, 26 Mar 2026 09:08:55 +0800 Subject: [PATCH] ui: use chip controls instead of checkbox in ReportAnalysisDialog - Replace Headless UI Checkbox with button elements - Implement modern chip/tag style with rounded-full design - Selected state: colored background with white text - Unselected state: white background with gray border - Add hover effects and smooth transitions - Maintain existing toggle functionality --- .../src/components/ReportAnalysisDialog.tsx | 50 +++++-------------- 1 file changed, 13 insertions(+), 37 deletions(-) diff --git a/src/renderer/src/components/ReportAnalysisDialog.tsx b/src/renderer/src/components/ReportAnalysisDialog.tsx index 28593bf..b4f5ae9 100644 --- a/src/renderer/src/components/ReportAnalysisDialog.tsx +++ b/src/renderer/src/components/ReportAnalysisDialog.tsx @@ -1,6 +1,5 @@ import React, { useState, useEffect } from 'react' import { X, FileText, Loader2, AlertCircle, RefreshCw } from 'lucide-react' -import { Checkbox } from '@headlessui/react' import { LineChart, Line, @@ -120,45 +119,22 @@ export const ReportAnalysisDialog: React.FC = ({
-
+
{numericMetrics.map((metric) => ( - toggleMetric(metric.key)} - className="group flex items-center gap-2 p-2 rounded-lg border border-slate-200 hover:border-blue-300 hover:bg-blue-50/50 transition-all cursor-pointer" + onClick={() => toggleMetric(metric.key)} + className={`px-3 py-1.5 rounded-full text-sm font-medium transition-all ${ + selectedMetrics.includes(metric.key) + ? 'text-white border-transparent hover:bg-opacity-80' + : 'bg-white text-slate-600 border border-slate-300 hover:bg-slate-50' + }`} + style={{ + backgroundColor: selectedMetrics.includes(metric.key) ? metric.color : undefined + }} > -
- {selectedMetrics.includes(metric.key) && ( - - - - )} -
- - {metric.label} - -
+ {metric.label} + ))}