@@ -200,6 +200,17 @@ export function ListWidget({ element, onConfigUpdate }: ListWidgetProps) {
);
}
+ // 컬럼 설정이 없으면 자동으로 모든 컬럼 표시
+ const displayColumns =
+ config.columns.length > 0
+ ? config.columns
+ : data.columns.map((col) => ({
+ id: col,
+ name: col,
+ dataKey: col,
+ visible: true,
+ }));
+
// 페이지네이션
const totalPages = Math.ceil(data.rows.length / config.pageSize);
const startIdx = (currentPage - 1) * config.pageSize;
@@ -219,7 +230,7 @@ export function ListWidget({ element, onConfigUpdate }: ListWidgetProps) {
{config.showHeader && (
- {config.columns
+ {displayColumns
.filter((col) => col.visible)
.map((col) => (
- {col.label}
+ {col.label || col.name}
))}
@@ -237,7 +248,7 @@ export function ListWidget({ element, onConfigUpdate }: ListWidgetProps) {
{paginatedRows.length === 0 ? (
col.visible).length}
+ colSpan={displayColumns.filter((col) => col.visible).length}
className="text-center text-gray-500"
>
데이터가 없습니다
@@ -246,14 +257,14 @@ export function ListWidget({ element, onConfigUpdate }: ListWidgetProps) {
) : (
paginatedRows.map((row, idx) => (
- {config.columns
+ {displayColumns
.filter((col) => col.visible)
.map((col) => (
- {String(row[col.field] ?? "")}
+ {String(row[col.dataKey || col.field] ?? "")}
))}
@@ -279,15 +290,15 @@ export function ListWidget({ element, onConfigUpdate }: ListWidgetProps) {
{paginatedRows.map((row, idx) => (
- {config.columns
+ {displayColumns
.filter((col) => col.visible)
.map((col) => (
-
{col.label}
+
{col.label || col.name}
- {String(row[col.field] ?? "")}
+ {String(row[col.dataKey || col.field] ?? "")}
))}