made a sticky header for the table
This commit is contained in:
parent
e35e699294
commit
06a5476e93
2 changed files with 12 additions and 4 deletions
|
|
@ -56,6 +56,11 @@ const useStyles = makeStyles((theme: Theme) => {
|
||||||
backgroundColor: "rgba(150, 150, 150, 0.15)",
|
backgroundColor: "rgba(150, 150, 150, 0.15)",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
stickyHeader: {
|
||||||
|
position: "sticky",
|
||||||
|
top: 0,
|
||||||
|
zIndex: 300 //giving a really high z-index to make sure nothing is in front of it
|
||||||
|
}
|
||||||
})},
|
})},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -100,6 +105,7 @@ interface Props<T> {
|
||||||
setOrder?: React.Dispatch<React.SetStateAction<"asc" | "desc">>;
|
setOrder?: React.Dispatch<React.SetStateAction<"asc" | "desc">>;
|
||||||
endTitleElement?: string | JSX.Element | (() => string | JSX.Element);
|
endTitleElement?: string | JSX.Element | (() => string | JSX.Element);
|
||||||
loadMore?: () => void
|
loadMore?: () => void
|
||||||
|
stickyHeader?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function ResponsiveTable<T extends Object>(props: Props<T>) {
|
export default function ResponsiveTable<T extends Object>(props: Props<T>) {
|
||||||
|
|
@ -133,7 +139,8 @@ export default function ResponsiveTable<T extends Object>(props: Props<T>) {
|
||||||
setOrderBy,
|
setOrderBy,
|
||||||
order,
|
order,
|
||||||
setOrder,
|
setOrder,
|
||||||
loadMore
|
loadMore,
|
||||||
|
stickyHeader
|
||||||
} = props
|
} = props
|
||||||
const classes = useStyles();
|
const classes = useStyles();
|
||||||
const columns = typeof(props.columns) === "function" ? props.columns() : props.columns
|
const columns = typeof(props.columns) === "function" ? props.columns() : props.columns
|
||||||
|
|
@ -432,9 +439,9 @@ export default function ResponsiveTable<T extends Object>(props: Props<T>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TableContainer className={classes.tableContainer} component={Paper}>
|
<Box className={classes.tableContainer} component={Paper}>
|
||||||
<Table>
|
<Table>
|
||||||
<TableHead>
|
<TableHead className={stickyHeader ? classes.stickyHeader : undefined}>
|
||||||
<TableRow sx={ !title && !setSearchText ? { display: "none" } : undefined}>
|
<TableRow sx={ !title && !setSearchText ? { display: "none" } : undefined}>
|
||||||
<TableCell colSpan={10000} sx={{ border: "none" }}>
|
<TableCell colSpan={10000} sx={{ border: "none" }}>
|
||||||
<Grid2 container justifyContent="space-between">
|
<Grid2 container justifyContent="space-between">
|
||||||
|
|
@ -629,6 +636,6 @@ export default function ResponsiveTable<T extends Object>(props: Props<T>) {
|
||||||
)
|
)
|
||||||
})}
|
})}
|
||||||
</Menu>
|
</Menu>
|
||||||
</TableContainer>
|
</Box>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -735,6 +735,7 @@ export default function Devices() {
|
||||||
<ResponsiveTable<Device>
|
<ResponsiveTable<Device>
|
||||||
title={<SmartBreadcrumb prependPaths={getGroup() && ["groups", getGroup().id().toString()]} groupName={getGroup() && getGroup().name()} paddingBottom={1}/>}
|
title={<SmartBreadcrumb prependPaths={getGroup() && ["groups", getGroup().id().toString()]} groupName={getGroup() && getGroup().name()} paddingBottom={1}/>}
|
||||||
subtitle={subtitle}
|
subtitle={subtitle}
|
||||||
|
stickyHeader
|
||||||
rows={devices}
|
rows={devices}
|
||||||
renderGutter={ isMobile ? gutter : undefined }
|
renderGutter={ isMobile ? gutter : undefined }
|
||||||
columns={columns}
|
columns={columns}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue