Skip to content

Commit 3137822

Browse files
committed
feat: add generic parameter for appliedColumns and applyColumns
1 parent adc7bde commit 3137822

1 file changed

Lines changed: 5 additions & 6 deletions

File tree

packages/module/src/ColumnManagementModal/ColumnManagementModal.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import type { FunctionComponent } from 'react';
21
import { useState, useEffect } from 'react';
32
import { Button, Content, ContentVariants, ButtonVariant } from '@patternfly/react-core';
43
import { ModalProps, Modal, ModalVariant } from '@patternfly/react-core/deprecated';
@@ -18,15 +17,15 @@ export interface ColumnManagementModalColumn {
1817
}
1918

2019
/** extends ModalProps */
21-
export interface ColumnManagementModalProps extends Omit<ModalProps, 'ref' | 'children'> {
20+
export interface ColumnManagementModalProps<T extends ColumnManagementModalColumn = ColumnManagementModalColumn> extends Omit<ModalProps, 'ref' | 'children'> {
2221
/** Flag to show the modal */
2322
isOpen?: boolean;
2423
/** Invoked when modal visibility is changed */
2524
onClose?: (event: KeyboardEvent | React.MouseEvent) => void;
2625
/** Current column state */
27-
appliedColumns: ColumnManagementModalColumn[];
26+
appliedColumns: T[];
2827
/** Invoked with new column state after save button is clicked */
29-
applyColumns: (newColumns: ColumnManagementModalColumn[]) => void;
28+
applyColumns: (newColumns: T[]) => void;
3029
/* Modal description text */
3130
description?: string;
3231
/* Modal title text */
@@ -41,7 +40,7 @@ export interface ColumnManagementModalProps extends Omit<ModalProps, 'ref' | 'ch
4140
resetToDefaultLabel?: string;
4241
}
4342

44-
const ColumnManagementModal: FunctionComponent<ColumnManagementModalProps> = ({
43+
const ColumnManagementModal = <T extends ColumnManagementModalColumn = ColumnManagementModalColumn>({
4544
title = 'Manage columns',
4645
description = 'Selected categories will be displayed in the table.',
4746
isOpen = false,
@@ -53,7 +52,7 @@ const ColumnManagementModal: FunctionComponent<ColumnManagementModalProps> = ({
5352
onReset,
5453
resetToDefaultLabel = 'Reset to default',
5554
...props
56-
}: ColumnManagementModalProps) => {
55+
}: ColumnManagementModalProps<T>) => {
5756
const [ currentColumns, setCurrentColumns ] = useState(() =>
5857
appliedColumns.map((column) => ({ ...column, isShown: column.isShown ?? column.isShownByDefault }))
5958
);

0 commit comments

Comments
 (0)