jskim-node #421
|
|
@ -3072,7 +3072,7 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
||||||
if (state.sortDirection) setSortDirection(state.sortDirection);
|
if (state.sortDirection) setSortDirection(state.sortDirection);
|
||||||
if (state.groupByColumns) setGroupByColumns(state.groupByColumns);
|
if (state.groupByColumns) setGroupByColumns(state.groupByColumns);
|
||||||
if (state.frozenColumns) {
|
if (state.frozenColumns) {
|
||||||
// 체크박스 컬럼이 항상 포함되도록 보장
|
// 체크박스 컬럼은 frozen 대상에서 제외 (배경색 이중 적용 방지)
|
||||||
const restoredFrozenColumns = (state.frozenColumns || []).filter((col: string) => col !== "__checkbox__");
|
const restoredFrozenColumns = (state.frozenColumns || []).filter((col: string) => col !== "__checkbox__");
|
||||||
setFrozenColumns(restoredFrozenColumns);
|
setFrozenColumns(restoredFrozenColumns);
|
||||||
}
|
}
|
||||||
|
|
@ -6227,16 +6227,18 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
||||||
: `${100 / visibleColumns.length}%`,
|
: `${100 / visibleColumns.length}%`,
|
||||||
minWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
minWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
||||||
maxWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
maxWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
||||||
...(isFrozen && {
|
...(isFrozen && {
|
||||||
left: `${leftPosition}px`,
|
left: `${leftPosition}px`,
|
||||||
backgroundColor: "hsl(var(--background))",
|
backgroundColor: index % 2 === 0
|
||||||
}),
|
? "hsl(var(--background))"
|
||||||
}}
|
: "hsl(var(--muted) / 0.2)",
|
||||||
>
|
}),
|
||||||
|
}}
|
||||||
|
>
|
||||||
{column.columnName === "__checkbox__"
|
{column.columnName === "__checkbox__"
|
||||||
? renderCheckboxCell(row, index)
|
? renderCheckboxCell(row, index)
|
||||||
: formatCellValue(cellValue, column, row)}
|
: formatCellValue(cellValue, column, row)}
|
||||||
</td>
|
</td>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
@ -6384,7 +6386,7 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
||||||
isModified && !cellValidationError && "bg-amber-100 dark:bg-amber-900/40",
|
isModified && !cellValidationError && "bg-amber-100 dark:bg-amber-900/40",
|
||||||
cellValidationError && "bg-red-50 ring-2 ring-red-500 ring-inset dark:bg-red-950/40",
|
cellValidationError && "bg-red-50 ring-2 ring-red-500 ring-inset dark:bg-red-950/40",
|
||||||
isSearchHighlighted && !isCellFocused && "bg-yellow-200 dark:bg-yellow-700/50",
|
isSearchHighlighted && !isCellFocused && "bg-yellow-200 dark:bg-yellow-700/50",
|
||||||
column.editable === false && "bg-gray-50 dark:bg-gray-900/30",
|
column.editable === false && "bg-muted/10 dark:bg-muted/10",
|
||||||
// 코드 컬럼: mono 폰트 + primary 색상
|
// 코드 컬럼: mono 폰트 + primary 색상
|
||||||
(inputType === "code" || inputType === "category") && "font-mono text-[10px] text-primary font-medium",
|
(inputType === "code" || inputType === "category") && "font-mono text-[10px] text-primary font-medium",
|
||||||
// 숫자 컬럼: tabular-nums 오른쪽 정렬
|
// 숫자 컬럼: tabular-nums 오른쪽 정렬
|
||||||
|
|
@ -6405,7 +6407,9 @@ export const TableListComponent: React.FC<TableListComponentProps> = ({
|
||||||
maxWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
maxWidth: column.columnName === "__checkbox__" ? "48px" : undefined,
|
||||||
...(isFrozen && {
|
...(isFrozen && {
|
||||||
left: `${leftPosition}px`,
|
left: `${leftPosition}px`,
|
||||||
backgroundColor: "hsl(var(--background))",
|
backgroundColor: index % 2 === 0
|
||||||
|
? "hsl(var(--background))"
|
||||||
|
: "hsl(var(--muted) / 0.2)",
|
||||||
}),
|
}),
|
||||||
}}
|
}}
|
||||||
onClick={(e) => handleCellClick(index, colIndex, e)}
|
onClick={(e) => handleCellClick(index, colIndex, e)}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue