From 1dc24d48e52f2e490f5603ceb02842586ecae533 Mon Sep 17 00:00:00 2001
From: dujinkim <dujin.kim@dtsolution.co.kr>
Date: Thu, 24 Jul 2025 11:06:32 +0000
Subject: (대표님) 정기평가 피드백 반영, 설계 피드백 반영, (최겸) 기술영업
 피드백 반영
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/evaluation/table/evaluation-view-toggle.tsx | 88 +++++++++++++++++++++++++
 1 file changed, 88 insertions(+)
 create mode 100644 lib/evaluation/table/evaluation-view-toggle.tsx

(limited to 'lib/evaluation/table/evaluation-view-toggle.tsx')

diff --git a/lib/evaluation/table/evaluation-view-toggle.tsx b/lib/evaluation/table/evaluation-view-toggle.tsx
new file mode 100644
index 00000000..e4fed6a8
--- /dev/null
+++ b/lib/evaluation/table/evaluation-view-toggle.tsx
@@ -0,0 +1,88 @@
+"use client";
+
+import * as React from "react";
+import { Button } from "@/components/ui/button";
+import { Badge } from "@/components/ui/badge";
+import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group";
+import { Info, BarChart3, List } from "lucide-react";
+import {
+  Tooltip,
+  TooltipContent,
+  TooltipProvider,
+  TooltipTrigger,
+} from "@/components/ui/tooltip";
+
+interface EvaluationViewToggleProps {
+  value: "detailed" | "aggregated";
+  onValueChange: (value: "detailed" | "aggregated") => void;
+  detailedCount?: number;
+  aggregatedCount?: number;
+}
+
+export function EvaluationViewToggle({
+  value,
+  onValueChange,
+  detailedCount,
+  aggregatedCount,
+}: EvaluationViewToggleProps) {
+  return (
+    <div className="flex items-center gap-2">
+      <ToggleGroup
+        type="single"
+        value={value}
+        onValueChange={(newValue) => {
+          if (newValue) onValueChange(newValue as "detailed" | "aggregated");
+        }}
+        className="bg-muted p-1 rounded-lg"
+      >
+        <ToggleGroupItem
+          value="detailed"
+          aria-label="상세 뷰"
+          className="flex items-center gap-2 data-[state=on]:bg-background"
+        >
+          <List className="h-4 w-4" />
+          <span>상세 뷰</span>
+          {detailedCount !== undefined && (
+            <Badge variant="secondary" className="ml-1">
+              {detailedCount}
+            </Badge>
+          )}
+        </ToggleGroupItem>
+        
+        <ToggleGroupItem
+          value="aggregated"
+          aria-label="집계 뷰"
+          className="flex items-center gap-2 data-[state=on]:bg-background"
+        >
+          <BarChart3 className="h-4 w-4" />
+          <span>집계 뷰</span>
+          {aggregatedCount !== undefined && (
+            <Badge variant="secondary" className="ml-1">
+              {aggregatedCount}
+            </Badge>
+          )}
+        </ToggleGroupItem>
+      </ToggleGroup>
+
+      <TooltipProvider>
+        <Tooltip>
+          <TooltipTrigger asChild>
+            <Button variant="ghost" size="icon" className="h-8 w-8">
+              <Info className="h-4 w-4" />
+            </Button>
+          </TooltipTrigger>
+          <TooltipContent side="bottom" className="max-w-sm">
+            <div className="space-y-2 text-sm">
+              <div>
+                <strong>상세 뷰:</strong> 모든 평가 기록을 개별적으로 표시
+              </div>
+              <div>
+                <strong>집계 뷰:</strong> 동일 벤더의 여러 division 평가를 평균으로 통합하여 표시
+              </div>
+            </div>
+          </TooltipContent>
+        </Tooltip>
+      </TooltipProvider>
+    </div>
+  );
+}
\ No newline at end of file
-- 
cgit v1.2.3

