ferns-ui 0.25.2 → 0.26.0
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.
- package/dist/Box.js +1 -1
- package/dist/Box.js.map +1 -1
- package/dist/SegmentedControl.js +7 -4
- package/dist/SegmentedControl.js.map +1 -1
- package/dist/SplitPage.d.ts +2 -1
- package/dist/SplitPage.js +2 -2
- package/dist/SplitPage.js.map +1 -1
- package/dist/Table.d.ts +21 -0
- package/dist/Table.js +31 -0
- package/dist/Table.js.map +1 -0
- package/dist/TableHeader.d.ts +20 -0
- package/dist/TableHeader.js +11 -0
- package/dist/TableHeader.js.map +1 -0
- package/dist/TableHeaderCell.d.ts +15 -0
- package/dist/TableHeaderCell.js +36 -0
- package/dist/TableHeaderCell.js.map +1 -0
- package/dist/TableRow.d.ts +24 -0
- package/dist/TableRow.js +30 -0
- package/dist/TableRow.js.map +1 -0
- package/dist/TapToEdit.js +16 -5
- package/dist/TapToEdit.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/tableContext.d.ts +18 -0
- package/dist/tableContext.js +16 -0
- package/dist/tableContext.js.map +1 -0
- package/package.json +1 -1
- package/src/Box.tsx +1 -0
- package/src/SegmentedControl.tsx +9 -4
- package/src/SplitPage.tsx +3 -1
- package/src/Table.tsx +69 -0
- package/src/TableHeader.tsx +33 -0
- package/src/TableHeaderCell.tsx +76 -0
- package/src/TableRow.tsx +87 -0
- package/src/TapToEdit.tsx +14 -2
- package/src/index.tsx +4 -0
- package/src/tableContext.tsx +43 -0
package/dist/Box.js
CHANGED
|
@@ -232,7 +232,7 @@ export class Box extends React.Component {
|
|
|
232
232
|
}
|
|
233
233
|
if (this.props.scroll) {
|
|
234
234
|
const _a = this.propsToStyle(), { justifyContent, alignContent, alignItems } = _a, scrollStyle = __rest(_a, ["justifyContent", "alignContent", "alignItems"]);
|
|
235
|
-
box = (React.createElement(ScrollView, { ref: this.props.scrollRef || this.scrollRef, contentContainerStyle: { justifyContent, alignContent, alignItems }, horizontal: this.props.overflow === "scrollX", keyboardShouldPersistTaps: "handled", scrollEventThrottle: 50, style: scrollStyle, onScroll: (event) => {
|
|
235
|
+
box = (React.createElement(ScrollView, { ref: this.props.scrollRef || this.scrollRef, contentContainerStyle: { justifyContent, alignContent, alignItems }, horizontal: this.props.overflow === "scrollX", keyboardShouldPersistTaps: "handled", nestedScrollEnabled: true, scrollEventThrottle: 50, style: scrollStyle, onScroll: (event) => {
|
|
236
236
|
if (this.props.onScroll && event) {
|
|
237
237
|
this.props.onScroll(event.nativeEvent.contentOffset.y);
|
|
238
238
|
}
|
package/dist/Box.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Box.js","sourceRoot":"","sources":["../src/Box.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Box.js","sourceRoot":"","sources":["../src/Box.tsx"],"names":[],"mappings":"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"}
|
package/dist/SegmentedControl.js
CHANGED
|
@@ -29,15 +29,18 @@ export const SegmentedControl = ({ items, onChange = () => { }, selectedItemInde
|
|
|
29
29
|
};
|
|
30
30
|
return (React.createElement(Box, { color: "lightGray", direction: "row", display: "flex", height: 40, justifyContent: "between", padding: 1, rounding: 3, width: "100%" }, items.map((item, index) => (React.createElement(Box, { key: index, color: isTabActive(index), height: "100%", paddingX: 2, rounding: 3, width: `${100 / items.length}%` },
|
|
31
31
|
React.createElement(Box, { alignItems: "center", display: "flex", height: "100%", justifyContent: "center", width: "100%", onClick: () => {
|
|
32
|
+
if ((selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.length) === selectLimit &&
|
|
33
|
+
!(selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.includes(index))) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
32
36
|
if (multiselect) {
|
|
33
37
|
if (selectedItemIndexes === null || selectedItemIndexes === void 0 ? void 0 : selectedItemIndexes.includes(index)) {
|
|
34
38
|
onChange({ activeIndex: selectedItemIndexes.filter((i) => i !== index) });
|
|
35
39
|
}
|
|
36
40
|
else {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
onChange({ activeIndex: reversed });
|
|
41
|
+
const currentIndexes = [...selectedItemIndexes];
|
|
42
|
+
currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.push(index);
|
|
43
|
+
onChange({ activeIndex: currentIndexes === null || currentIndexes === void 0 ? void 0 : currentIndexes.sort() });
|
|
41
44
|
}
|
|
42
45
|
}
|
|
43
46
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SegmentedControl.js","sourceRoot":"","sources":["../src/SegmentedControl.tsx"],"names":[],"mappings":"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"}
|
package/dist/SplitPage.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ interface SplitPageProps {
|
|
|
15
15
|
listViewExtraData?: any;
|
|
16
16
|
listViewWidth?: number;
|
|
17
17
|
renderChild?: () => ReactChild;
|
|
18
|
+
selectLimit?: number;
|
|
18
19
|
}
|
|
19
|
-
export declare const SplitPage: ({ children, tabs, loading, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, }: SplitPageProps) => JSX.Element | null;
|
|
20
|
+
export declare const SplitPage: ({ children, tabs, loading, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, selectLimit, }: SplitPageProps) => JSX.Element | null;
|
|
20
21
|
export {};
|
package/dist/SplitPage.js
CHANGED
|
@@ -10,7 +10,7 @@ import { Spinner } from "./Spinner";
|
|
|
10
10
|
import { Unifier } from "./Unifier";
|
|
11
11
|
// A component for rendering a list on one side and a details view on the right for large screens,
|
|
12
12
|
// and a scrollable list where clicking an item takes you the details view.
|
|
13
|
-
export const SplitPage = ({ children, tabs = [], loading = false, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, }) => {
|
|
13
|
+
export const SplitPage = ({ children, tabs = [], loading = false, color, keyboardOffset, renderListViewItem, renderListViewHeader, renderContent, listViewData, listViewExtraData, listViewWidth, selectLimit, }) => {
|
|
14
14
|
const [selectedId, setSelectedId] = useState(undefined);
|
|
15
15
|
const [activeTabs, setActiveTabs] = useState(tabs.length > 2 ? [0, 1] : []);
|
|
16
16
|
const elementArray = Children.toArray(children);
|
|
@@ -59,7 +59,7 @@ export const SplitPage = ({ children, tabs = [], loading = false, color, keyboar
|
|
|
59
59
|
alignItems: "center",
|
|
60
60
|
} },
|
|
61
61
|
React.createElement(Box, { paddingX: 4, paddingY: 2, width: "100%" },
|
|
62
|
-
React.createElement(SegmentedControl, { items: tabs, multiselect: true, selectLimit: tabs.length, selectedItemIndexes: activeTabs, onChange: (index) => {
|
|
62
|
+
React.createElement(SegmentedControl, { items: tabs, multiselect: true, selectLimit: selectLimit || tabs.length, selectedItemIndexes: activeTabs, onChange: (index) => {
|
|
63
63
|
setActiveTabs([...index.activeIndex]);
|
|
64
64
|
} })),
|
|
65
65
|
React.createElement(Box, { direction: "row", flex: "grow", height: "100%", paddingX: 2, width: activeTabs.length > 1 ? "100%" : "60%" }, activeTabs.map((tabIndex) => {
|
package/dist/SplitPage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitPage.js","sourceRoot":"","sources":["../src/SplitPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAA4B,QAAQ,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAqB,UAAU,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAElE,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAQ,OAAO,EAAC,MAAM,UAAU,CAAC;AACxC,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,oBAAoB,EAAC,MAAM,cAAc,CAAC;AAClD,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"SplitPage.js","sourceRoot":"","sources":["../src/SplitPage.tsx"],"names":[],"mappings":"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"}
|
package/dist/Table.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface TableProps {
|
|
3
|
+
/**
|
|
4
|
+
* Must be instances of TableHeader, TableRow, and/or TableFooter components.
|
|
5
|
+
*/
|
|
6
|
+
children: React.ReactNode | React.ReactNode[];
|
|
7
|
+
/**
|
|
8
|
+
* Width of columns in the table. This is used to calculate the width of each column. Can be numbers for pixels or strings for percentages.
|
|
9
|
+
*/
|
|
10
|
+
columns: Array<number | string>;
|
|
11
|
+
/**
|
|
12
|
+
* Specify a border width for Table: "sm" is 1px.
|
|
13
|
+
*/
|
|
14
|
+
borderStyle?: "sm" | "none";
|
|
15
|
+
/**
|
|
16
|
+
* Use numbers for pixels: `maxHeight={100}` and strings for percentages: `maxHeight="100%"`.
|
|
17
|
+
*/
|
|
18
|
+
maxHeight?: number | string;
|
|
19
|
+
}
|
|
20
|
+
export declare function Table({ children, columns, borderStyle, maxHeight }: TableProps): React.ReactElement;
|
|
21
|
+
export {};
|
package/dist/Table.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import React, { Children, useRef } from "react";
|
|
2
|
+
import { Box } from "./Box";
|
|
3
|
+
import { ScrollView } from "./ScrollView";
|
|
4
|
+
import { TableContextProvider } from "./tableContext";
|
|
5
|
+
export function Table({ children, columns, borderStyle, maxHeight }) {
|
|
6
|
+
const tableRef = useRef(null);
|
|
7
|
+
const arrayChildren = Children.toArray(children);
|
|
8
|
+
const [sortColumn, setSortColumn] = React.useState(undefined);
|
|
9
|
+
// Check if any of the rows below have a drawerContents prop to see if we need to render space for the caret.
|
|
10
|
+
const hasDrawerContents = arrayChildren.some((child) => {
|
|
11
|
+
var _a;
|
|
12
|
+
return (_a = child.props) === null || _a === void 0 ? void 0 : _a.drawerContents;
|
|
13
|
+
});
|
|
14
|
+
// Calculate the total width of the table. If the table has only number widths, calculate a width. Otherwise use 100%.
|
|
15
|
+
let width;
|
|
16
|
+
if (columns.every((column) => typeof column === "number")) {
|
|
17
|
+
width = columns.reduce((acc, curr) => {
|
|
18
|
+
return acc + curr;
|
|
19
|
+
}, 0);
|
|
20
|
+
if (hasDrawerContents) {
|
|
21
|
+
width = width + 30;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
width = "100%";
|
|
26
|
+
}
|
|
27
|
+
return (React.createElement(TableContextProvider, { columns: columns, hasDrawerContents: hasDrawerContents, setSortColumn: setSortColumn, sortColumn: sortColumn },
|
|
28
|
+
React.createElement(ScrollView, { horizontal: true, style: { width, maxWidth: "100%" } },
|
|
29
|
+
React.createElement(Box, Object.assign({ width: width }, (borderStyle === "sm" ? { borderStyle: "sm", rounding: 1 } : {}), { ref: tableRef, flex: "grow", maxHeight: maxHeight }), children))));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../src/Table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAgB,MAAM,EAAC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAsB,oBAAoB,EAAC,MAAM,gBAAgB,CAAC;AAqBzE,MAAM,UAAU,KAAK,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAa;IAC3E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IAE/F,6GAA6G;IAC7G,MAAM,iBAAiB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;;QACrD,OAAO,MAAC,KAAsB,CAAC,KAAK,0CAAE,cAAc,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,sHAAsH;IACtH,IAAI,KAAsB,CAAC;IAC3B,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAE;QACzD,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YACnC,OAAQ,GAAc,GAAI,IAAe,CAAC;QAC5C,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,iBAAiB,EAAE;YACrB,KAAK,GAAI,KAAgB,GAAG,EAAE,CAAC;SAChC;KACF;SAAM;QACL,KAAK,GAAG,MAAM,CAAC;KAChB;IAED,OAAO,CACL,oBAAC,oBAAoB,IACnB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;QAEtB,oBAAC,UAAU,IAAC,UAAU,QAAC,KAAK,EAAE,EAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAC;YACrD,oBAAC,GAAG,kBACF,KAAK,EAAE,KAAK,IACR,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAClE,GAAG,EAAE,QAAQ,EACb,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,SAAS,KAEnB,QAAQ,CACL,CACK,CACQ,CACxB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface TableHeaderProps {
|
|
3
|
+
/**
|
|
4
|
+
* Must be an instance of TableRow.
|
|
5
|
+
*/
|
|
6
|
+
children: React.ReactNode | React.ReactNode[];
|
|
7
|
+
/**
|
|
8
|
+
* Display `visuallyHidden` ensures the component is visually hidden but still is read by screen readers.
|
|
9
|
+
*/
|
|
10
|
+
display?: "tableHeaderGroup" | "visuallyHidden";
|
|
11
|
+
/**
|
|
12
|
+
* If true, the table header will be sticky and the table body will be scrollable. Not yet implemented.
|
|
13
|
+
*/
|
|
14
|
+
sticky?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Use TableHeader to group the header content in Table.
|
|
18
|
+
*/
|
|
19
|
+
export declare function TableHeader({ children, display, }: TableHeaderProps): React.ReactElement;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Box } from "./Box";
|
|
3
|
+
import { TableRow } from "./TableRow";
|
|
4
|
+
/**
|
|
5
|
+
* Use TableHeader to group the header content in Table.
|
|
6
|
+
*/
|
|
7
|
+
export function TableHeader({ children, display = "tableHeaderGroup", }) {
|
|
8
|
+
return (React.createElement(Box, { display: display === "visuallyHidden" ? "none" : "flex" },
|
|
9
|
+
React.createElement(TableRow, { headerRow: true }, children)));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=TableHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableHeader.js","sourceRoot":"","sources":["../src/TableHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AAiBpC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,GAAG,kBAAkB,GACX;IACjB,OAAO,CACL,oBAAC,GAAG,IAAC,OAAO,EAAE,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC1D,oBAAC,QAAQ,IAAC,SAAS,UAAE,QAAQ,CAAY,CACrC,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactElement } from "react";
|
|
2
|
+
interface Props {
|
|
3
|
+
/**
|
|
4
|
+
* The content of the table header cell.
|
|
5
|
+
*/
|
|
6
|
+
children: ReactElement;
|
|
7
|
+
index: number;
|
|
8
|
+
sortable?: boolean;
|
|
9
|
+
onSortChange?: (direction: "asc" | "desc" | undefined) => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Use TableHeaderCell to define a header cell in Table.
|
|
13
|
+
*/
|
|
14
|
+
export declare function TableHeaderCell({ children, index, sortable, onSortChange }: Props): ReactElement;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Box } from "./Box";
|
|
3
|
+
import { IconButton } from "./IconButton";
|
|
4
|
+
import { useTableContext } from "./tableContext";
|
|
5
|
+
/**
|
|
6
|
+
* Use TableHeaderCell to define a header cell in Table.
|
|
7
|
+
*/
|
|
8
|
+
export function TableHeaderCell({ children, index, sortable, onSortChange }) {
|
|
9
|
+
const { columns, setSortColumn, sortColumn } = useTableContext();
|
|
10
|
+
const width = columns[index];
|
|
11
|
+
if (!width) {
|
|
12
|
+
console.warn(`No width defined for column ${index} in TableHeaderCell`);
|
|
13
|
+
}
|
|
14
|
+
const onClick = () => {
|
|
15
|
+
// desc => asc => undefined
|
|
16
|
+
const newSort = sort === "desc" ? "asc" : sort === "asc" ? undefined : "desc";
|
|
17
|
+
if (setSortColumn) {
|
|
18
|
+
setSortColumn(newSort ? { column: index, direction: newSort } : undefined);
|
|
19
|
+
}
|
|
20
|
+
onSortChange && onSortChange(newSort);
|
|
21
|
+
};
|
|
22
|
+
const sort = (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.column) === index ? sortColumn.direction : undefined;
|
|
23
|
+
if (sortable) {
|
|
24
|
+
if (!onSortChange) {
|
|
25
|
+
console.error("onSortChange is required when sortable is true");
|
|
26
|
+
}
|
|
27
|
+
return (React.createElement(Box, { alignItems: "center", direction: "row", flex: "grow", justifyContent: "between", marginBottom: 2, marginTop: 2, maxWidth: width, minHeight: 36, width: width, onClick: onClick },
|
|
28
|
+
children,
|
|
29
|
+
Boolean(sort) && (React.createElement(Box, { paddingX: 2 },
|
|
30
|
+
React.createElement(IconButton, { accessibilityLabel: "sort", bgColor: "white", icon: sort === "asc" ? "arrow-down" : "arrow-up", iconColor: "darkGray", size: "sm", onClick: () => { } })))));
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
return (React.createElement(Box, { marginBottom: 2, marginTop: 2, width: width }, children));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=TableHeaderCell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableHeaderCell.js","sourceRoot":"","sources":["../src/TableHeaderCell.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAY/C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAQ;IAC9E,MAAM,EAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAC,GAAG,eAAe,EAAE,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK,EAAE;QACV,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,qBAAqB,CAAC,CAAC;KACzE;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,2BAA2B;QAC3B,MAAM,OAAO,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;SAC1E;QACD,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,MAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,IAAI,QAAQ,EAAE;QACZ,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACjE;QACD,OAAO,CACL,oBAAC,GAAG,IACF,UAAU,EAAC,QAAQ,EACnB,SAAS,EAAC,KAAK,EACf,IAAI,EAAC,MAAM,EACX,cAAc,EAAC,SAAS,EACxB,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,QAAQ,EAAE,KAAK,EACf,SAAS,EAAE,EAAE,EACb,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO;YAEf,QAAQ;YACR,OAAO,CAAC,IAAI,CAAC,IAAI,CAChB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC;gBACd,oBAAC,UAAU,IACT,kBAAkB,EAAC,MAAM,EACzB,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,EAChD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,GACjB,CACE,CACP,CACG,CACP,CAAC;KACH;SAAM;QACL,OAAO,CACL,oBAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,IAC7C,QAAQ,CACL,CACP,CAAC;KACH;AACH,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface Props {
|
|
3
|
+
/**
|
|
4
|
+
* Must be instances of TableCell or TableHeaderCell.
|
|
5
|
+
*/
|
|
6
|
+
children: React.ReactNode | React.ReactNode[];
|
|
7
|
+
/**
|
|
8
|
+
* Header rows have an extra thick bottom border.
|
|
9
|
+
*/
|
|
10
|
+
headerRow?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the row should start expanded or not.
|
|
13
|
+
*/
|
|
14
|
+
expanded?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* When the row is expanded, the drawerContents are shown. If not
|
|
17
|
+
*/
|
|
18
|
+
drawerContents?: React.ReactNode | React.ReactNode[];
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Use TableRow to define a row in Table.
|
|
22
|
+
*/
|
|
23
|
+
export declare function TableRow({ children, headerRow, expanded, drawerContents, }: Props): React.ReactElement;
|
|
24
|
+
export {};
|
package/dist/TableRow.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React, { Children, useRef } from "react";
|
|
2
|
+
import { Box } from "./Box";
|
|
3
|
+
import { IconButton } from "./IconButton";
|
|
4
|
+
import { useTableContext } from "./tableContext";
|
|
5
|
+
/**
|
|
6
|
+
* Use TableRow to define a row in Table.
|
|
7
|
+
*/
|
|
8
|
+
export function TableRow({ children, headerRow = false, expanded, drawerContents, }) {
|
|
9
|
+
const [isExpanded, setIsExpanded] = React.useState(expanded || false);
|
|
10
|
+
const { columns, hasDrawerContents } = useTableContext();
|
|
11
|
+
const rowRef = useRef(null);
|
|
12
|
+
const renderCellWithColumnIndex = (child, index) => {
|
|
13
|
+
if (!columns[index]) {
|
|
14
|
+
console.warn(`No width defined for column ${index} in TableRow`);
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return (React.createElement(Box, { paddingX: 2, width: columns[index] }, child));
|
|
18
|
+
};
|
|
19
|
+
const border = { __style: { borderBottom: `${headerRow ? 2 : 1}px solid #e0e0e0` } };
|
|
20
|
+
return (React.createElement(Box, { ref: rowRef, dangerouslySetInlineStyle: border, marginBottom: 1, marginTop: 1, width: "100%" },
|
|
21
|
+
React.createElement(Box, { direction: "row", width: "100%" },
|
|
22
|
+
Boolean(drawerContents) && (React.createElement(Box, { width: 30 },
|
|
23
|
+
React.createElement(IconButton, { accessibilityLabel: "expand", bgColor: "white", icon: isExpanded ? "chevron-up" : "chevron-down", iconColor: "darkGray", size: "sm", onClick: () => {
|
|
24
|
+
setIsExpanded(!isExpanded);
|
|
25
|
+
} }))),
|
|
26
|
+
Boolean(hasDrawerContents && !drawerContents) && React.createElement(Box, { width: 30 }),
|
|
27
|
+
Children.map(children, renderCellWithColumnIndex)),
|
|
28
|
+
Boolean(isExpanded) && (React.createElement(Box, { paddingX: 2, width: "100%" }, drawerContents))));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=TableRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRow.js","sourceRoot":"","sources":["../src/TableRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAqB/C;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,cAAc,GACR;IACN,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC;IACtE,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAC,GAAG,eAAe,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,MAAM,CAAM,IAAI,CAAC,CAAC;IAEjC,MAAM,yBAAyB,GAAG,CAAC,KAAsB,EAAE,KAAa,EAAE,EAAE;QAC1E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,OAAO,CAAC,IAAI,CAAC,+BAA+B,KAAK,cAAc,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;SACb;QACD,OAAO,CACL,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IACpC,KAAK,CACF,CACP,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,EAAC,OAAO,EAAE,EAAC,YAAY,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAC,EAAC,CAAC;IAEjF,OAAO,CACL,oBAAC,GAAG,IACF,GAAG,EAAE,MAAM,EACX,yBAAyB,EAAE,MAAM,EACjC,YAAY,EAAE,CAAC,EACf,SAAS,EAAE,CAAC,EACZ,KAAK,EAAC,MAAM;QAEZ,oBAAC,GAAG,IAAC,SAAS,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM;YAC9B,OAAO,CAAC,cAAc,CAAC,IAAI,CAC1B,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE;gBACZ,oBAAC,UAAU,IACT,kBAAkB,EAAC,QAAQ,EAC3B,OAAO,EAAC,OAAO,EACf,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,EAChD,SAAS,EAAC,UAAU,EACpB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,GAAG,EAAE;wBACZ,aAAa,CAAC,CAAC,UAAU,CAAC,CAAC;oBAC7B,CAAC,GACD,CACE,CACP;YAEA,OAAO,CAAC,iBAAiB,IAAI,CAAC,cAAc,CAAC,IAAI,oBAAC,GAAG,IAAC,KAAK,EAAE,EAAE,GAAI;YACnE,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAC9C;QACL,OAAO,CAAC,UAAU,CAAC,IAAI,CACtB,oBAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAC,MAAM,IAC3B,cAAc,CACX,CACP,CACG,CACP,CAAC;AACJ,CAAC"}
|
package/dist/TapToEdit.js
CHANGED
|
@@ -10,13 +10,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
12
|
import React, { useState } from "react";
|
|
13
|
+
import { Linking } from "react-native";
|
|
13
14
|
import { Box } from "./Box";
|
|
14
15
|
import { Button } from "./Button";
|
|
15
16
|
import { Field } from "./Field";
|
|
16
17
|
import { Icon } from "./Icon";
|
|
17
18
|
import { Text } from "./Text";
|
|
18
19
|
export const TapToEdit = (_a) => {
|
|
19
|
-
var _b, _c;
|
|
20
|
+
var _b, _c, _d;
|
|
20
21
|
var { value, setValue, placeholder, title, onSave, editable = true, isEditing = false, rowBoxProps, transform, fieldComponent } = _a, fieldProps = __rest(_a, ["value", "setValue", "placeholder", "title", "onSave", "editable", "isEditing", "rowBoxProps", "transform", "fieldComponent"]);
|
|
21
22
|
const [editing, setEditing] = useState(false);
|
|
22
23
|
if (editable && !setValue) {
|
|
@@ -69,6 +70,11 @@ export const TapToEdit = (_a) => {
|
|
|
69
70
|
// ???
|
|
70
71
|
displayValue = value.join(", ");
|
|
71
72
|
}
|
|
73
|
+
else if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url") {
|
|
74
|
+
// Show only the domain, full links are likely too long.
|
|
75
|
+
const url = new URL(value);
|
|
76
|
+
displayValue = (_b = url === null || url === void 0 ? void 0 : url.hostname) !== null && _b !== void 0 ? _b : value;
|
|
77
|
+
}
|
|
72
78
|
else if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "address") {
|
|
73
79
|
let city = "";
|
|
74
80
|
if (value === null || value === void 0 ? void 0 : value.city) {
|
|
@@ -79,21 +85,26 @@ export const TapToEdit = (_a) => {
|
|
|
79
85
|
state = (value === null || value === void 0 ? void 0 : value.zipcode) ? `${value.state} ` : `${value.state}`;
|
|
80
86
|
}
|
|
81
87
|
const zip = (value === null || value === void 0 ? void 0 : value.zipcode) || "";
|
|
82
|
-
const addressLineOne = (
|
|
83
|
-
const addressLineTwo = (
|
|
88
|
+
const addressLineOne = (_c = value === null || value === void 0 ? void 0 : value.address1) !== null && _c !== void 0 ? _c : "";
|
|
89
|
+
const addressLineTwo = (_d = value === null || value === void 0 ? void 0 : value.address2) !== null && _d !== void 0 ? _d : "";
|
|
84
90
|
const addressLineThree = `${city}${state}${zip}`;
|
|
85
91
|
// Only add new lines if lines before and after are not empty to avoid awkward whitespace
|
|
86
92
|
displayValue = `${addressLineOne}${addressLineOne && (addressLineTwo || addressLineThree) ? `\n` : ""}${addressLineTwo}${addressLineTwo && addressLineThree ? `\n` : ""}${addressLineThree}`;
|
|
87
93
|
}
|
|
88
94
|
}
|
|
95
|
+
const openLink = () => {
|
|
96
|
+
if ((fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url") {
|
|
97
|
+
Linking.openURL(value);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
89
100
|
return (React.createElement(Box, Object.assign({ direction: "row", justifyContent: "between", paddingX: 3, paddingY: 2, width: "100%" }, rowBoxProps),
|
|
90
101
|
React.createElement(Box, null,
|
|
91
102
|
React.createElement(Text, { weight: "bold" },
|
|
92
103
|
title,
|
|
93
104
|
":")),
|
|
94
105
|
React.createElement(Box, { direction: "row" },
|
|
95
|
-
React.createElement(Box, null,
|
|
96
|
-
React.createElement(Text, null, displayValue)),
|
|
106
|
+
React.createElement(Box, { onClick: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url" ? openLink : undefined },
|
|
107
|
+
React.createElement(Text, { underline: (fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.type) === "url" }, displayValue)),
|
|
97
108
|
editable && (React.createElement(Box, { marginLeft: 2, onClick: () => setEditing(true) },
|
|
98
109
|
React.createElement(Icon, { color: "darkGray", name: "edit", prefix: "far", size: "md" }))))));
|
|
99
110
|
}
|
package/dist/TapToEdit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAe,QAAQ,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TapToEdit.js","sourceRoot":"","sources":["../src/TapToEdit.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -51,6 +51,10 @@ export * from "./NumberPickerActionSheet";
|
|
|
51
51
|
export * from "./ModalSheet";
|
|
52
52
|
export * from "./ProgressBar";
|
|
53
53
|
export * from "./DateTimeField";
|
|
54
|
+
export * from "./Table";
|
|
55
|
+
export * from "./TableHeader";
|
|
56
|
+
export * from "./TableHeaderCell";
|
|
57
|
+
export * from "./TableRow";
|
|
54
58
|
type ImageRequireSource = number;
|
|
55
59
|
interface Insets {
|
|
56
60
|
top?: number;
|
package/dist/index.js
CHANGED
|
@@ -54,4 +54,8 @@ export * from "./NumberPickerActionSheet";
|
|
|
54
54
|
export * from "./ModalSheet";
|
|
55
55
|
export * from "./ProgressBar";
|
|
56
56
|
export * from "./DateTimeField";
|
|
57
|
+
export * from "./Table";
|
|
58
|
+
export * from "./TableHeader";
|
|
59
|
+
export * from "./TableHeaderCell";
|
|
60
|
+
export * from "./TableRow";
|
|
57
61
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,4BAA4B;AAC5B,4BAA4B;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,2BAA2B;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,4BAA4B;AAC5B,4BAA4B;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AAExB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,2BAA2B;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface ColumnSortInterface {
|
|
3
|
+
column: number | undefined;
|
|
4
|
+
direction: "asc" | "desc" | undefined;
|
|
5
|
+
}
|
|
6
|
+
interface TableContextType {
|
|
7
|
+
columns: Array<number | string>;
|
|
8
|
+
hasDrawerContents: boolean;
|
|
9
|
+
sortColumn?: ColumnSortInterface | undefined;
|
|
10
|
+
setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
|
|
11
|
+
}
|
|
12
|
+
interface Props extends TableContextType {
|
|
13
|
+
children: React.ReactElement;
|
|
14
|
+
}
|
|
15
|
+
export declare const Provider: React.Provider<TableContextType>;
|
|
16
|
+
export declare function TableContextProvider({ children, columns, hasDrawerContents, sortColumn, setSortColumn, }: Props): React.ReactElement<typeof Provider>;
|
|
17
|
+
export declare function useTableContext(): TableContextType;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { createContext, useContext } from "react";
|
|
2
|
+
const TableContext = createContext({
|
|
3
|
+
columns: [],
|
|
4
|
+
hasDrawerContents: false,
|
|
5
|
+
sortColumn: undefined,
|
|
6
|
+
setSortColumn: () => { },
|
|
7
|
+
});
|
|
8
|
+
export const { Provider } = TableContext;
|
|
9
|
+
export function TableContextProvider({ children, columns, hasDrawerContents, sortColumn, setSortColumn, }) {
|
|
10
|
+
return (React.createElement(Provider, { value: { columns, hasDrawerContents, sortColumn, setSortColumn } }, children));
|
|
11
|
+
}
|
|
12
|
+
export function useTableContext() {
|
|
13
|
+
const { columns, hasDrawerContents, setSortColumn, sortColumn } = useContext(TableContext);
|
|
14
|
+
return { columns, hasDrawerContents, setSortColumn, sortColumn };
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=tableContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tableContext.js","sourceRoot":"","sources":["../src/tableContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAU,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAkBhE,MAAM,YAAY,GAA8B,aAAa,CAAmB;IAC9E,OAAO,EAAE,EAAE;IACX,iBAAiB,EAAE,KAAK;IACxB,UAAU,EAAE,SAAS;IACrB,aAAa,EAAE,GAAG,EAAE,GAAE,CAAC;CACxB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,EAAC,QAAQ,EAAC,GAAG,YAAY,CAAC;AAEvC,MAAM,UAAU,oBAAoB,CAAC,EACnC,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,UAAU,EACV,aAAa,GACP;IACN,OAAO,CACL,oBAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,aAAa,EAAC,IAAG,QAAQ,CAAY,CAChG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,EAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IACzF,OAAO,EAAC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAC,CAAC;AACjE,CAAC"}
|
package/package.json
CHANGED
package/src/Box.tsx
CHANGED
|
@@ -269,6 +269,7 @@ export class Box extends React.Component<BoxProps, {}> {
|
|
|
269
269
|
contentContainerStyle={{justifyContent, alignContent, alignItems}}
|
|
270
270
|
horizontal={this.props.overflow === "scrollX"}
|
|
271
271
|
keyboardShouldPersistTaps="handled"
|
|
272
|
+
nestedScrollEnabled
|
|
272
273
|
scrollEventThrottle={50}
|
|
273
274
|
style={scrollStyle}
|
|
274
275
|
onScroll={(event) => {
|
package/src/SegmentedControl.tsx
CHANGED
|
@@ -69,14 +69,19 @@ export const SegmentedControl = ({
|
|
|
69
69
|
justifyContent="center"
|
|
70
70
|
width="100%"
|
|
71
71
|
onClick={() => {
|
|
72
|
+
if (
|
|
73
|
+
selectedItemIndexes?.length === selectLimit &&
|
|
74
|
+
!selectedItemIndexes?.includes(index)
|
|
75
|
+
) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
72
78
|
if (multiselect) {
|
|
73
79
|
if (selectedItemIndexes?.includes(index)) {
|
|
74
80
|
onChange({activeIndex: selectedItemIndexes.filter((i) => i !== index)});
|
|
75
81
|
} else {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
onChange({activeIndex: reversed as number[]});
|
|
82
|
+
const currentIndexes = [...(selectedItemIndexes as number[])];
|
|
83
|
+
currentIndexes?.push(index);
|
|
84
|
+
onChange({activeIndex: currentIndexes?.sort() as number[]});
|
|
80
85
|
}
|
|
81
86
|
} else {
|
|
82
87
|
onChange({activeIndex: index});
|
package/src/SplitPage.tsx
CHANGED
|
@@ -25,6 +25,7 @@ interface SplitPageProps {
|
|
|
25
25
|
listViewExtraData?: any;
|
|
26
26
|
listViewWidth?: number;
|
|
27
27
|
renderChild?: () => ReactChild;
|
|
28
|
+
selectLimit?: number;
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
// A component for rendering a list on one side and a details view on the right for large screens,
|
|
@@ -41,6 +42,7 @@ export const SplitPage = ({
|
|
|
41
42
|
listViewData,
|
|
42
43
|
listViewExtraData,
|
|
43
44
|
listViewWidth,
|
|
45
|
+
selectLimit,
|
|
44
46
|
}: SplitPageProps) => {
|
|
45
47
|
const [selectedId, setSelectedId] = useState<number | undefined>(undefined);
|
|
46
48
|
const [activeTabs, setActiveTabs] = useState<number[]>(tabs.length > 2 ? [0, 1] : []);
|
|
@@ -130,7 +132,7 @@ export const SplitPage = ({
|
|
|
130
132
|
<SegmentedControl
|
|
131
133
|
items={tabs}
|
|
132
134
|
multiselect
|
|
133
|
-
selectLimit={tabs.length}
|
|
135
|
+
selectLimit={selectLimit || tabs.length}
|
|
134
136
|
selectedItemIndexes={activeTabs}
|
|
135
137
|
onChange={(index) => {
|
|
136
138
|
setActiveTabs([...(index.activeIndex as number[])]);
|
package/src/Table.tsx
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React, {Children, ReactElement, useRef} from "react";
|
|
2
|
+
|
|
3
|
+
import {Box} from "./Box";
|
|
4
|
+
import {ScrollView} from "./ScrollView";
|
|
5
|
+
import {ColumnSortInterface, TableContextProvider} from "./tableContext";
|
|
6
|
+
|
|
7
|
+
interface TableProps {
|
|
8
|
+
/**
|
|
9
|
+
* Must be instances of TableHeader, TableRow, and/or TableFooter components.
|
|
10
|
+
*/
|
|
11
|
+
children: React.ReactNode | React.ReactNode[];
|
|
12
|
+
/**
|
|
13
|
+
* Width of columns in the table. This is used to calculate the width of each column. Can be numbers for pixels or strings for percentages.
|
|
14
|
+
*/
|
|
15
|
+
columns: Array<number | string>;
|
|
16
|
+
/**
|
|
17
|
+
* Specify a border width for Table: "sm" is 1px.
|
|
18
|
+
*/
|
|
19
|
+
borderStyle?: "sm" | "none";
|
|
20
|
+
/**
|
|
21
|
+
* Use numbers for pixels: `maxHeight={100}` and strings for percentages: `maxHeight="100%"`.
|
|
22
|
+
*/
|
|
23
|
+
maxHeight?: number | string;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function Table({children, columns, borderStyle, maxHeight}: TableProps): React.ReactElement {
|
|
27
|
+
const tableRef = useRef(null);
|
|
28
|
+
const arrayChildren = Children.toArray(children);
|
|
29
|
+
const [sortColumn, setSortColumn] = React.useState<ColumnSortInterface | undefined>(undefined);
|
|
30
|
+
|
|
31
|
+
// Check if any of the rows below have a drawerContents prop to see if we need to render space for the caret.
|
|
32
|
+
const hasDrawerContents = arrayChildren.some((child) => {
|
|
33
|
+
return (child as ReactElement).props?.drawerContents;
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
// Calculate the total width of the table. If the table has only number widths, calculate a width. Otherwise use 100%.
|
|
37
|
+
let width: string | number;
|
|
38
|
+
if (columns.every((column) => typeof column === "number")) {
|
|
39
|
+
width = columns.reduce((acc, curr) => {
|
|
40
|
+
return (acc as number) + (curr as number);
|
|
41
|
+
}, 0);
|
|
42
|
+
if (hasDrawerContents) {
|
|
43
|
+
width = (width as number) + 30;
|
|
44
|
+
}
|
|
45
|
+
} else {
|
|
46
|
+
width = "100%";
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return (
|
|
50
|
+
<TableContextProvider
|
|
51
|
+
columns={columns}
|
|
52
|
+
hasDrawerContents={hasDrawerContents}
|
|
53
|
+
setSortColumn={setSortColumn}
|
|
54
|
+
sortColumn={sortColumn}
|
|
55
|
+
>
|
|
56
|
+
<ScrollView horizontal style={{width, maxWidth: "100%"}}>
|
|
57
|
+
<Box
|
|
58
|
+
width={width}
|
|
59
|
+
{...(borderStyle === "sm" ? {borderStyle: "sm", rounding: 1} : {})}
|
|
60
|
+
ref={tableRef}
|
|
61
|
+
flex="grow"
|
|
62
|
+
maxHeight={maxHeight}
|
|
63
|
+
>
|
|
64
|
+
{children}
|
|
65
|
+
</Box>
|
|
66
|
+
</ScrollView>
|
|
67
|
+
</TableContextProvider>
|
|
68
|
+
);
|
|
69
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import {Box} from "./Box";
|
|
4
|
+
import {TableRow} from "./TableRow";
|
|
5
|
+
|
|
6
|
+
interface TableHeaderProps {
|
|
7
|
+
/**
|
|
8
|
+
* Must be an instance of TableRow.
|
|
9
|
+
*/
|
|
10
|
+
children: React.ReactNode | React.ReactNode[];
|
|
11
|
+
/**
|
|
12
|
+
* Display `visuallyHidden` ensures the component is visually hidden but still is read by screen readers.
|
|
13
|
+
*/
|
|
14
|
+
display?: "tableHeaderGroup" | "visuallyHidden";
|
|
15
|
+
/**
|
|
16
|
+
* If true, the table header will be sticky and the table body will be scrollable. Not yet implemented.
|
|
17
|
+
*/
|
|
18
|
+
sticky?: boolean;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Use TableHeader to group the header content in Table.
|
|
23
|
+
*/
|
|
24
|
+
export function TableHeader({
|
|
25
|
+
children,
|
|
26
|
+
display = "tableHeaderGroup",
|
|
27
|
+
}: TableHeaderProps): React.ReactElement {
|
|
28
|
+
return (
|
|
29
|
+
<Box display={display === "visuallyHidden" ? "none" : "flex"}>
|
|
30
|
+
<TableRow headerRow>{children}</TableRow>
|
|
31
|
+
</Box>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React, {ReactElement} from "react";
|
|
2
|
+
|
|
3
|
+
import {Box} from "./Box";
|
|
4
|
+
import {IconButton} from "./IconButton";
|
|
5
|
+
import {useTableContext} from "./tableContext";
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
/**
|
|
9
|
+
* The content of the table header cell.
|
|
10
|
+
*/
|
|
11
|
+
children: ReactElement;
|
|
12
|
+
index: number;
|
|
13
|
+
sortable?: boolean;
|
|
14
|
+
onSortChange?: (direction: "asc" | "desc" | undefined) => void;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Use TableHeaderCell to define a header cell in Table.
|
|
19
|
+
*/
|
|
20
|
+
export function TableHeaderCell({children, index, sortable, onSortChange}: Props): ReactElement {
|
|
21
|
+
const {columns, setSortColumn, sortColumn} = useTableContext();
|
|
22
|
+
const width = columns[index];
|
|
23
|
+
if (!width) {
|
|
24
|
+
console.warn(`No width defined for column ${index} in TableHeaderCell`);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const onClick = () => {
|
|
28
|
+
// desc => asc => undefined
|
|
29
|
+
const newSort = sort === "desc" ? "asc" : sort === "asc" ? undefined : "desc";
|
|
30
|
+
if (setSortColumn) {
|
|
31
|
+
setSortColumn(newSort ? {column: index, direction: newSort} : undefined);
|
|
32
|
+
}
|
|
33
|
+
onSortChange && onSortChange(newSort);
|
|
34
|
+
};
|
|
35
|
+
const sort = sortColumn?.column === index ? sortColumn.direction : undefined;
|
|
36
|
+
|
|
37
|
+
if (sortable) {
|
|
38
|
+
if (!onSortChange) {
|
|
39
|
+
console.error("onSortChange is required when sortable is true");
|
|
40
|
+
}
|
|
41
|
+
return (
|
|
42
|
+
<Box
|
|
43
|
+
alignItems="center"
|
|
44
|
+
direction="row"
|
|
45
|
+
flex="grow"
|
|
46
|
+
justifyContent="between"
|
|
47
|
+
marginBottom={2}
|
|
48
|
+
marginTop={2}
|
|
49
|
+
maxWidth={width}
|
|
50
|
+
minHeight={36}
|
|
51
|
+
width={width}
|
|
52
|
+
onClick={onClick}
|
|
53
|
+
>
|
|
54
|
+
{children}
|
|
55
|
+
{Boolean(sort) && (
|
|
56
|
+
<Box paddingX={2}>
|
|
57
|
+
<IconButton
|
|
58
|
+
accessibilityLabel="sort"
|
|
59
|
+
bgColor="white"
|
|
60
|
+
icon={sort === "asc" ? "arrow-down" : "arrow-up"}
|
|
61
|
+
iconColor="darkGray"
|
|
62
|
+
size="sm"
|
|
63
|
+
onClick={() => {}}
|
|
64
|
+
/>
|
|
65
|
+
</Box>
|
|
66
|
+
)}
|
|
67
|
+
</Box>
|
|
68
|
+
);
|
|
69
|
+
} else {
|
|
70
|
+
return (
|
|
71
|
+
<Box marginBottom={2} marginTop={2} width={width}>
|
|
72
|
+
{children}
|
|
73
|
+
</Box>
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
}
|
package/src/TableRow.tsx
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import React, {Children, useRef} from "react";
|
|
2
|
+
|
|
3
|
+
import {Box} from "./Box";
|
|
4
|
+
import {IconButton} from "./IconButton";
|
|
5
|
+
import {useTableContext} from "./tableContext";
|
|
6
|
+
|
|
7
|
+
interface Props {
|
|
8
|
+
/**
|
|
9
|
+
* Must be instances of TableCell or TableHeaderCell.
|
|
10
|
+
*/
|
|
11
|
+
children: React.ReactNode | React.ReactNode[];
|
|
12
|
+
/**
|
|
13
|
+
* Header rows have an extra thick bottom border.
|
|
14
|
+
*/
|
|
15
|
+
headerRow?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the row should start expanded or not.
|
|
18
|
+
*/
|
|
19
|
+
expanded?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* When the row is expanded, the drawerContents are shown. If not
|
|
22
|
+
*/
|
|
23
|
+
drawerContents?: React.ReactNode | React.ReactNode[];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Use TableRow to define a row in Table.
|
|
28
|
+
*/
|
|
29
|
+
export function TableRow({
|
|
30
|
+
children,
|
|
31
|
+
headerRow = false,
|
|
32
|
+
expanded,
|
|
33
|
+
drawerContents,
|
|
34
|
+
}: Props): React.ReactElement {
|
|
35
|
+
const [isExpanded, setIsExpanded] = React.useState(expanded || false);
|
|
36
|
+
const {columns, hasDrawerContents} = useTableContext();
|
|
37
|
+
const rowRef = useRef<Box>(null);
|
|
38
|
+
|
|
39
|
+
const renderCellWithColumnIndex = (child: React.ReactNode, index: number) => {
|
|
40
|
+
if (!columns[index]) {
|
|
41
|
+
console.warn(`No width defined for column ${index} in TableRow`);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
return (
|
|
45
|
+
<Box paddingX={2} width={columns[index]}>
|
|
46
|
+
{child}
|
|
47
|
+
</Box>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
const border = {__style: {borderBottom: `${headerRow ? 2 : 1}px solid #e0e0e0`}};
|
|
52
|
+
|
|
53
|
+
return (
|
|
54
|
+
<Box
|
|
55
|
+
ref={rowRef}
|
|
56
|
+
dangerouslySetInlineStyle={border}
|
|
57
|
+
marginBottom={1}
|
|
58
|
+
marginTop={1}
|
|
59
|
+
width="100%"
|
|
60
|
+
>
|
|
61
|
+
<Box direction="row" width="100%">
|
|
62
|
+
{Boolean(drawerContents) && (
|
|
63
|
+
<Box width={30}>
|
|
64
|
+
<IconButton
|
|
65
|
+
accessibilityLabel="expand"
|
|
66
|
+
bgColor="white"
|
|
67
|
+
icon={isExpanded ? "chevron-up" : "chevron-down"}
|
|
68
|
+
iconColor="darkGray"
|
|
69
|
+
size="sm"
|
|
70
|
+
onClick={() => {
|
|
71
|
+
setIsExpanded(!isExpanded);
|
|
72
|
+
}}
|
|
73
|
+
/>
|
|
74
|
+
</Box>
|
|
75
|
+
)}
|
|
76
|
+
{/* Still render a blank space so the columns line up. */}
|
|
77
|
+
{Boolean(hasDrawerContents && !drawerContents) && <Box width={30} />}
|
|
78
|
+
{Children.map(children, renderCellWithColumnIndex)}
|
|
79
|
+
</Box>
|
|
80
|
+
{Boolean(isExpanded) && (
|
|
81
|
+
<Box paddingX={2} width="100%">
|
|
82
|
+
{drawerContents}
|
|
83
|
+
</Box>
|
|
84
|
+
)}
|
|
85
|
+
</Box>
|
|
86
|
+
);
|
|
87
|
+
}
|
package/src/TapToEdit.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React, {ReactElement, useState} from "react";
|
|
2
|
+
import {Linking} from "react-native";
|
|
2
3
|
|
|
3
4
|
import {Box} from "./Box";
|
|
4
5
|
import {Button} from "./Button";
|
|
@@ -110,6 +111,10 @@ export const TapToEdit = ({
|
|
|
110
111
|
} else if (fieldProps?.type === "multiselect") {
|
|
111
112
|
// ???
|
|
112
113
|
displayValue = value.join(", ");
|
|
114
|
+
} else if (fieldProps?.type === "url") {
|
|
115
|
+
// Show only the domain, full links are likely too long.
|
|
116
|
+
const url = new URL(value);
|
|
117
|
+
displayValue = url?.hostname ?? value;
|
|
113
118
|
} else if (fieldProps?.type === "address") {
|
|
114
119
|
let city = "";
|
|
115
120
|
if (value?.city) {
|
|
@@ -133,6 +138,13 @@ export const TapToEdit = ({
|
|
|
133
138
|
}${addressLineTwo}${addressLineTwo && addressLineThree ? `\n` : ""}${addressLineThree}`;
|
|
134
139
|
}
|
|
135
140
|
}
|
|
141
|
+
|
|
142
|
+
const openLink = (): void => {
|
|
143
|
+
if (fieldProps?.type === "url") {
|
|
144
|
+
Linking.openURL(value);
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
136
148
|
return (
|
|
137
149
|
<Box
|
|
138
150
|
direction="row"
|
|
@@ -146,8 +158,8 @@ export const TapToEdit = ({
|
|
|
146
158
|
<Text weight="bold">{title}:</Text>
|
|
147
159
|
</Box>
|
|
148
160
|
<Box direction="row">
|
|
149
|
-
<Box>
|
|
150
|
-
<Text>{displayValue}</Text>
|
|
161
|
+
<Box onClick={fieldProps?.type === "url" ? openLink : undefined}>
|
|
162
|
+
<Text underline={fieldProps?.type === "url"}>{displayValue}</Text>
|
|
151
163
|
</Box>
|
|
152
164
|
{editable && (
|
|
153
165
|
<Box marginLeft={2} onClick={(): void => setEditing(true)}>
|
package/src/index.tsx
CHANGED
|
@@ -55,6 +55,10 @@ export * from "./NumberPickerActionSheet";
|
|
|
55
55
|
export * from "./ModalSheet";
|
|
56
56
|
export * from "./ProgressBar";
|
|
57
57
|
export * from "./DateTimeField";
|
|
58
|
+
export * from "./Table";
|
|
59
|
+
export * from "./TableHeader";
|
|
60
|
+
export * from "./TableHeaderCell";
|
|
61
|
+
export * from "./TableRow";
|
|
58
62
|
|
|
59
63
|
// Lifted from react-native
|
|
60
64
|
type ImageRequireSource = number;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import React, {Context, createContext, useContext} from "react";
|
|
2
|
+
|
|
3
|
+
export interface ColumnSortInterface {
|
|
4
|
+
column: number | undefined;
|
|
5
|
+
direction: "asc" | "desc" | undefined;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
interface TableContextType {
|
|
9
|
+
columns: Array<number | string>;
|
|
10
|
+
hasDrawerContents: boolean;
|
|
11
|
+
sortColumn?: ColumnSortInterface | undefined;
|
|
12
|
+
setSortColumn?: (sort: ColumnSortInterface | undefined) => void;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface Props extends TableContextType {
|
|
16
|
+
children: React.ReactElement;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const TableContext: Context<TableContextType> = createContext<TableContextType>({
|
|
20
|
+
columns: [],
|
|
21
|
+
hasDrawerContents: false,
|
|
22
|
+
sortColumn: undefined,
|
|
23
|
+
setSortColumn: () => {},
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export const {Provider} = TableContext;
|
|
27
|
+
|
|
28
|
+
export function TableContextProvider({
|
|
29
|
+
children,
|
|
30
|
+
columns,
|
|
31
|
+
hasDrawerContents,
|
|
32
|
+
sortColumn,
|
|
33
|
+
setSortColumn,
|
|
34
|
+
}: Props): React.ReactElement<typeof Provider> {
|
|
35
|
+
return (
|
|
36
|
+
<Provider value={{columns, hasDrawerContents, sortColumn, setSortColumn}}>{children}</Provider>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function useTableContext(): TableContextType {
|
|
41
|
+
const {columns, hasDrawerContents, setSortColumn, sortColumn} = useContext(TableContext);
|
|
42
|
+
return {columns, hasDrawerContents, setSortColumn, sortColumn};
|
|
43
|
+
}
|