diff --git a/frontend/components/dashboard/widgets/CustomMetricWidget.tsx b/frontend/components/dashboard/widgets/CustomMetricWidget.tsx
index 90d763d0..9c23c714 100644
--- a/frontend/components/dashboard/widgets/CustomMetricWidget.tsx
+++ b/frontend/components/dashboard/widgets/CustomMetricWidget.tsx
@@ -373,50 +373,53 @@ export default function CustomMetricWidget({ element }: CustomMetricWidgetProps)
);
}
+ // 위젯 높이에 따라 레이아웃 결정 (세로 1칸이면 가로, 2칸 이상이면 세로)
+ // 실제 측정된 1칸 높이: 119px
+ const isHorizontalLayout = element?.size?.height && element.size.height <= 130; // 1칸 여유 (119px + 약간의 마진)
+
return (
-
- {/* 콘텐츠 영역 - 스크롤 없이 자동으로 크기 조정 */}
-
- {/* 그룹별 카드 (활성화 시) */}
- {isGroupByMode &&
- groupedCards.map((card, index) => {
- // 색상 순환 (6가지 색상)
- const colorKeys = Object.keys(colorMap) as Array
;
- const colorKey = colorKeys[index % colorKeys.length];
- const colors = colorMap[colorKey];
-
- return (
-
-
{card.label}
-
- {card.value.toLocaleString()}
-
-
- );
- })}
-
- {/* 일반 지표 카드 (항상 표시) */}
- {metrics.map((metric) => {
- const colors = colorMap[metric.color as keyof typeof colorMap] || colorMap.gray;
- const formattedValue = metric.calculatedValue.toFixed(metric.decimals);
+
+ {/* 그룹별 카드 (활성화 시) */}
+ {isGroupByMode &&
+ groupedCards.map((card, index) => {
+ // 색상 순환 (6가지 색상)
+ const colorKeys = Object.keys(colorMap) as Array
;
+ const colorKey = colorKeys[index % colorKeys.length];
+ const colors = colorMap[colorKey];
return (
-
{metric.label}
-
- {formattedValue}
- {metric.unit}
-
+
{card.label}
+
{card.value.toLocaleString()}
);
})}
-
+
+ {/* 일반 지표 카드 (항상 표시) */}
+ {metrics.map((metric) => {
+ const colors = colorMap[metric.color as keyof typeof colorMap] || colorMap.gray;
+ const formattedValue = metric.calculatedValue.toFixed(metric.decimals);
+
+ return (
+
+
{metric.label}
+
+ {formattedValue}
+ {metric.unit}
+
+
+ );
+ })}
);
}