diff --git a/src/FilterLists.Web/ClientApp/components/Home.tsx b/src/FilterLists.Web/ClientApp/components/Home.tsx
index aed99e46b..88a6a426a 100644
--- a/src/FilterLists.Web/ClientApp/components/Home.tsx
+++ b/src/FilterLists.Web/ClientApp/components/Home.tsx
@@ -19,6 +19,15 @@ interface IHomeState {
pageSize: number;
}
+const columnVisibilityDefaults = [
+ { column: "Name", visible: true },
+ { column: "Software", visible: true },
+ { column: "Tags", visible: true },
+ { column: "Languages", visible: true },
+ { column: "Updated Date", visible: true },
+ { column: "Details", visible: true }
+];
+
export class Home extends React.Component, IHomeState> {
constructor(props: any) {
super(props);
@@ -31,14 +40,7 @@ export class Home extends React.Component, IHomeState> {
loadingSoftware: true,
languages: [],
loadingLanguages: true,
- columnVisibility: [
- { column: "Name", visible: true },
- { column: "Software", visible: true },
- { column: "Tags", visible: true },
- { column: "Languages", visible: true },
- { column: "Updated Date", visible: true },
- { column: "Details", visible: true }
- ],
+ columnVisibility: columnVisibilityDefaults,
pageSize: 20
};
this.updatePageSize = this.updatePageSize.bind(this);
@@ -112,19 +114,6 @@ export class Home extends React.Component, IHomeState> {
;
}
- private renderColumnVisibilityCheckboxes() {
- return
- Visible: {this.state.columnVisibility.map((c: IColumnVisibility) => this.renderColumnVisibilityCheckbox(c))}
-
;
- };
-
- private renderColumnVisibilityCheckbox(props: IColumnVisibility) {
- return
-
-
-
;
- }
-
private static renderFilterListsTable(state: IHomeState) {
return , IHomeState> {
.includes(filter.value.toUpperCase()),
sortMethod: (a: any, b: any) => a.toUpperCase() > b.toUpperCase() ? 1 : -1,
Cell: (cell: any) => {cell.value}
,
- style: { overflow: "visible" }
+ style: { overflow: "visible" },
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Name";
+ })[0].visible
},
{
Header: "Software Support",
@@ -164,7 +156,10 @@ export class Home extends React.Component, IHomeState> {
Cell: () => null,
width: 250,
headerClassName: "d-none d-md-block",
- className: "d-none d-md-block"
+ className: "d-none d-md-block",
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Software";
+ })[0].visible
},
{
Header: "Tags",
@@ -180,7 +175,10 @@ export class Home extends React.Component, IHomeState> {
}} title={e.description}>{e.name})},
width: 200,
headerClassName: "d-none d-md-block",
- className: "d-none d-md-block"
+ className: "d-none d-md-block",
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Tags";
+ })[0].visible
},
{
Header: "Languages",
@@ -202,11 +200,15 @@ export class Home extends React.Component, IHomeState> {
,
sortable: false,
Cell: (cell: any) => {cell.value.map(
- (e: any) => {e.iso6391})}
,
+ (e: any) => {e.iso6391})
+ },
style: { whiteSpace: "inherit" },
width: 100,
headerClassName: "d-none d-md-block",
- className: "d-none d-md-block"
+ className: "d-none d-md-block",
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Languages";
+ })[0].visible
},
{
Header: "Updated",
@@ -222,7 +224,10 @@ export class Home extends React.Component, IHomeState> {
style: { whiteSpace: "inherit" },
width: 100,
headerClassName: "d-none d-md-block",
- className: "d-none d-md-block"
+ className: "d-none d-md-block",
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Updated Date";
+ })[0].visible
},
{
Header: "Details",
@@ -242,7 +247,10 @@ export class Home extends React.Component, IHomeState> {
}
,
style: { textAlign: "center" },
- width: 90
+ width: 90,
+ show: state.columnVisibility.filter((c: IColumnVisibility) => {
+ return c.column === "Details";
+ })[0].visible
}
]}
SubComponent={(row: any) => {
@@ -252,6 +260,19 @@ export class Home extends React.Component, IHomeState> {
}}
className="-striped -highlight"/>;
}
+
+ private renderColumnVisibilityCheckboxes() {
+ return
+ Visible: {this.state.columnVisibility.map((c: IColumnVisibility) => this.renderColumnVisibilityCheckbox(c))}
+
;
+ };
+
+ private renderColumnVisibilityCheckbox(props: IColumnVisibility) {
+ return
+
+
+
;
+ }
}
interface ISoftwareDto {