회사:
diff --git a/negodata/front/src/components/ui/tooltip.tsx b/negodata/front/src/components/ui/tooltip.tsx
new file mode 100644
index 0000000..69eaa2c
--- /dev/null
+++ b/negodata/front/src/components/ui/tooltip.tsx
@@ -0,0 +1,40 @@
+import { Tooltip as TooltipPrimitive } from '@base-ui/react/tooltip'
+import { cn } from '@/lib/utils'
+
+// base-ui 기반 툴팁(프로젝트가 radix 아닌 @base-ui/react — tabs/select 와 동일 계열).
+function Tooltip(props: TooltipPrimitive.Root.Props) {
+ return (
+
+
+
+ )
+}
+
+function TooltipTrigger(props: TooltipPrimitive.Trigger.Props) {
+ return
+}
+
+function TooltipContent({
+ className,
+ sideOffset = 6,
+ children,
+ ...props
+}: TooltipPrimitive.Popup.Props & { sideOffset?: number }) {
+ return (
+
+
+
+ {children}
+
+
+
+ )
+}
+
+export { Tooltip, TooltipTrigger, TooltipContent }
diff --git a/negodata/front/src/features/quotations/components/QuotationDetailSheet/ChatTab.tsx b/negodata/front/src/features/quotations/components/QuotationDetailSheet/ChatTab.tsx
index 22c21e3..9ae0e92 100644
--- a/negodata/front/src/features/quotations/components/QuotationDetailSheet/ChatTab.tsx
+++ b/negodata/front/src/features/quotations/components/QuotationDetailSheet/ChatTab.tsx
@@ -80,10 +80,10 @@ export function ChatTab({
// 협상완료 부가정보(sessions.custom) — 공급사가 타결 후 입력. 라벨은 회사 설정(session_fields)에서.
const { settings } = useCompanySettings();
const sessionFields = settings.session_fields ?? [];
- const custom = (currentSession?.custom ?? {}) as Record
;
- const extraRows = sessionFields
- .map((f) => ({ label: f.label, value: custom[f.key] }))
- .filter((r) => r.value !== undefined && r.value !== null && r.value !== '');
+ const extraRows = (sd: SessionData | null) =>
+ sessionFields
+ .map((f) => ({ label: f.label, value: (sd?.custom as Record | undefined)?.[f.key] }))
+ .filter((r) => r.value !== undefined && r.value !== null && r.value !== '');
return (
{/* Sessions list */}
@@ -102,7 +102,7 @@ export function ChatTab({
const name = partners.find((p) => p.id === sd.supplier_id)?.name || sd.supplier_id;
const statusLabel = sessionStatusLabel(sd.status);
return (
-
-
+