@navikt/ds-react 0.16.17 → 0.16.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,9 +3,15 @@ import cl from "classnames";
3
3
  import Header, { HeaderType } from "./Header";
4
4
  import Body, { BodyType } from "./Body";
5
5
  import Row, { RowType } from "./Row";
6
+ import ColumnHeader, { ColumnHeaderType } from "./ColumnHeader";
6
7
  import HeaderCell, { HeaderCellType } from "./HeaderCell";
7
8
  import DataCell, { DataCellType } from "./DataCell";
8
9
 
10
+ export interface SortState {
11
+ orderBy: string;
12
+ direction: "ascending" | "descending";
13
+ }
14
+
9
15
  export interface TableProps
10
16
  extends React.TableHTMLAttributes<HTMLTableElement> {
11
17
  /**
@@ -18,6 +24,14 @@ export interface TableProps
18
24
  * @default false
19
25
  */
20
26
  zebraStripes?: boolean;
27
+ /**
28
+ * Sort state
29
+ */
30
+ sort?: SortState;
31
+ /**
32
+ * Callback whens sort state changes
33
+ */
34
+ onSortChange?: (sortKey?: string) => void;
21
35
  }
22
36
 
23
37
  export interface TableType
@@ -29,17 +43,30 @@ export interface TableType
29
43
  Row: RowType;
30
44
  DataCell: DataCellType;
31
45
  HeaderCell: HeaderCellType;
46
+ ColumnHeader: ColumnHeaderType;
32
47
  }
33
48
 
34
49
  export interface TableContextProps {
35
50
  size: "medium" | "small";
51
+ onSortChange?: (sortKey: string) => void;
52
+ sort?: SortState;
36
53
  }
37
54
 
38
55
  export const TableContext = createContext<TableContextProps | null>(null);
39
56
 
40
57
  const Table = forwardRef(
41
- ({ className, zebraStripes = false, size = "medium", ...rest }, ref) => (
42
- <TableContext.Provider value={{ size }}>
58
+ (
59
+ {
60
+ className,
61
+ zebraStripes = false,
62
+ size = "medium",
63
+ onSortChange,
64
+ sort,
65
+ ...rest
66
+ },
67
+ ref
68
+ ) => (
69
+ <TableContext.Provider value={{ size, onSortChange, sort }}>
43
70
  <table
44
71
  {...rest}
45
72
  ref={ref}
@@ -54,6 +81,7 @@ const Table = forwardRef(
54
81
  Table.Header = Header;
55
82
  Table.Body = Body;
56
83
  Table.Row = Row;
84
+ Table.ColumnHeader = ColumnHeader;
57
85
  Table.HeaderCell = HeaderCell;
58
86
  Table.DataCell = DataCell;
59
87