테이블에서 visible 및 filter처리

This commit is contained in:
leedj312
2025-05-06 23:09:34 +09:00
parent 826b49d72a
commit f04a463aeb
2 changed files with 13 additions and 4 deletions
@@ -8,16 +8,20 @@ interface TableUpperProps {
row? : number;
rowSpan?: number;
colSpan?: number;
visible?:boolean;
}
const HeadMakeColSpan = ({ upHeadList }: { upHeadList: TableUpperProps[] }) => {
const maxRow = upHeadList.reduce((max, head) => Math.max(max, head.row || 0), 0);
const maxRow = upHeadList?.reduce((max, head) => Math.max(max, head.row || 0), 0);
//upHeadList.forEach((item) => item.visible ?item.visible:true)
if(maxRow == 0){
return (
<>
<TableRow className="bg-gray-50">
{upHeadList.map((head: TableUpperProps) => {
{upHeadList
.filter((item) => item.visible != false)
.map((head: TableUpperProps) => {
return (
<TableHead
key={head.id}
@@ -38,7 +42,9 @@ const HeadMakeColSpan = ({ upHeadList }: { upHeadList: TableUpperProps[] }) => {
<>
{Array.from({ length: maxRow + 1 }, (_, rowIndex) => (
<TableRow key={rowIndex+ " headerRow"} className="bg-gray-50">
{upHeadList.map((head: TableUpperProps) => {
{upHeadList
.filter((item) => item.visible != false)
.map((head: TableUpperProps) => {
if (head.row === rowIndex) {
return (
<TableHead
@@ -20,6 +20,7 @@ type UiHeadProps = {
id: string;
title: string;
align?: string;
visible?:boolean;
}
export function UiTable({ tableData, headlist, pageSize, total, headName, children, cellClick, onPageChange, className = '', resetPageNo = false }: UiTableProps) {
@@ -58,7 +59,9 @@ export function UiTable({ tableData, headlist, pageSize, total, headName, childr
<TableBody className='text-center'>
{tableData.length > 0 ? tableData?.map((el: { [key: string]: any}, index) => (
<TableRow key={`row-${index}`}>
{headlist?.map((head) => (
{headlist
.filter((item) => item.visible != false)
.map((head) => (
head.id && head.id.length > 1 && (
<TableCell
className={`${head.align === 'right' ? 'text-right' : head.align === 'center' ? 'text-center' : typeof el[head.id] === 'number' ? 'text-right' : 'text-center'} ${