@draftbit/core 48.0.3-924ae9.2 → 48.0.3-b432fe.2

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.
Files changed (88) hide show
  1. package/lib/src/components/Progress/CircularProgress/CircularProgress.d.ts +3 -0
  2. package/lib/src/components/Progress/CircularProgress/CircularProgress.js +101 -0
  3. package/lib/src/components/Progress/CircularProgress/CircularProgress.js.map +1 -0
  4. package/lib/src/components/Progress/CircularProgress/index.d.ts +6 -0
  5. package/lib/src/components/Progress/CircularProgress/index.js +14 -0
  6. package/lib/src/components/Progress/CircularProgress/index.js.map +1 -0
  7. package/lib/src/components/Progress/IndeterminateProgress.d.ts +7 -0
  8. package/lib/src/components/Progress/IndeterminateProgress.js +39 -0
  9. package/lib/src/components/Progress/IndeterminateProgress.js.map +1 -0
  10. package/lib/src/components/Progress/LinearProgress/LinearProgress.d.ts +3 -0
  11. package/lib/src/components/Progress/LinearProgress/LinearProgress.js +54 -0
  12. package/lib/src/components/Progress/LinearProgress/LinearProgress.js.map +1 -0
  13. package/lib/src/components/Progress/LinearProgress/index.d.ts +6 -0
  14. package/lib/src/components/Progress/LinearProgress/index.js +14 -0
  15. package/lib/src/components/Progress/LinearProgress/index.js.map +1 -0
  16. package/lib/src/components/Progress/ProgressCommon.d.ts +39 -0
  17. package/lib/src/components/Progress/ProgressCommon.js +2 -0
  18. package/lib/src/components/Progress/ProgressCommon.js.map +1 -0
  19. package/lib/src/components/SwipeableItem/SwipeableItem.js +4 -7
  20. package/lib/src/components/SwipeableItem/SwipeableItem.js.map +1 -1
  21. package/lib/src/components/TabView/TabView.js +2 -6
  22. package/lib/src/components/TabView/TabView.js.map +1 -1
  23. package/lib/src/components/TabView/TabViewItem.d.ts +1 -1
  24. package/lib/src/components/TabView/TabViewItem.js.map +1 -1
  25. package/lib/src/components/Table/TableCell.d.ts +1 -0
  26. package/lib/src/components/Table/TableCell.js +4 -2
  27. package/lib/src/components/Table/TableCell.js.map +1 -1
  28. package/lib/src/components/Table/TableRow.d.ts +1 -0
  29. package/lib/src/components/Table/TableRow.js +4 -2
  30. package/lib/src/components/Table/TableRow.js.map +1 -1
  31. package/lib/src/index.d.ts +2 -1
  32. package/lib/src/index.js +2 -1
  33. package/lib/src/index.js.map +1 -1
  34. package/lib/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +3 -3
  36. package/src/components/Progress/CircularProgress/CircularProgress.js +101 -0
  37. package/src/components/Progress/CircularProgress/CircularProgress.js.map +1 -0
  38. package/src/components/Progress/CircularProgress/CircularProgress.tsx +198 -0
  39. package/src/components/Progress/CircularProgress/index.js +14 -0
  40. package/src/components/Progress/CircularProgress/index.js.map +1 -0
  41. package/src/components/Progress/CircularProgress/index.tsx +28 -0
  42. package/src/components/Progress/IndeterminateProgress.js +39 -0
  43. package/src/components/Progress/IndeterminateProgress.js.map +1 -0
  44. package/src/components/Progress/IndeterminateProgress.tsx +73 -0
  45. package/src/components/Progress/LinearProgress/LinearProgress.js +54 -0
  46. package/src/components/Progress/LinearProgress/LinearProgress.js.map +1 -0
  47. package/src/components/Progress/LinearProgress/LinearProgress.tsx +130 -0
  48. package/src/components/Progress/LinearProgress/index.js +14 -0
  49. package/src/components/Progress/LinearProgress/index.js.map +1 -0
  50. package/src/components/Progress/LinearProgress/index.tsx +25 -0
  51. package/src/components/Progress/ProgressCommon.js +2 -0
  52. package/src/components/Progress/ProgressCommon.js.map +1 -0
  53. package/src/components/Progress/ProgressCommon.ts +43 -0
  54. package/src/components/SwipeableItem/SwipeableItem.js +4 -7
  55. package/src/components/SwipeableItem/SwipeableItem.js.map +1 -1
  56. package/src/components/SwipeableItem/SwipeableItem.tsx +6 -11
  57. package/src/components/TabView/TabView.js +2 -6
  58. package/src/components/TabView/TabView.js.map +1 -1
  59. package/src/components/TabView/TabView.tsx +2 -11
  60. package/src/components/TabView/TabViewItem.js.map +1 -1
  61. package/src/components/TabView/TabViewItem.tsx +1 -2
  62. package/src/components/Table/TableCell.js +4 -2
  63. package/src/components/Table/TableCell.js.map +1 -1
  64. package/src/components/Table/TableCell.tsx +8 -2
  65. package/src/components/Table/TableRow.js +4 -2
  66. package/src/components/Table/TableRow.js.map +1 -1
  67. package/src/components/Table/TableRow.tsx +8 -2
  68. package/src/index.js +2 -1
  69. package/src/index.js.map +1 -1
  70. package/src/index.tsx +2 -1
  71. package/lib/src/components/SectionList/SectionHeader.d.ts +0 -15
  72. package/lib/src/components/SectionList/SectionHeader.js +0 -14
  73. package/lib/src/components/SectionList/SectionHeader.js.map +0 -1
  74. package/lib/src/components/SectionList/SectionList.d.ts +0 -19
  75. package/lib/src/components/SectionList/SectionList.js +0 -95
  76. package/lib/src/components/SectionList/SectionList.js.map +0 -1
  77. package/lib/src/components/SectionList/index.d.ts +0 -2
  78. package/lib/src/components/SectionList/index.js +0 -3
  79. package/lib/src/components/SectionList/index.js.map +0 -1
  80. package/src/components/SectionList/SectionHeader.js +0 -14
  81. package/src/components/SectionList/SectionHeader.js.map +0 -1
  82. package/src/components/SectionList/SectionHeader.tsx +0 -36
  83. package/src/components/SectionList/SectionList.js +0 -95
  84. package/src/components/SectionList/SectionList.js.map +0 -1
  85. package/src/components/SectionList/SectionList.tsx +0 -171
  86. package/src/components/SectionList/index.js +0 -3
  87. package/src/components/SectionList/index.js.map +0 -1
  88. package/src/components/SectionList/index.tsx +0 -2
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import { View, Text } from "react-native";
3
- import { withTheme } from "../../theming";
4
- const SectionHeader = ({ style, children, }) => React.createElement(View, { style: [style] }, children);
5
- export const DefaultSectionHeader = withTheme(({ title, theme }) => {
6
- return (React.createElement(Text, { style: {
7
- color: theme.colors.background,
8
- backgroundColor: theme.colors.primary,
9
- fontSize: 16,
10
- padding: 10,
11
- } }, title));
12
- });
13
- export default SectionHeader;
14
- //# sourceMappingURL=SectionHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SectionHeader.js","sourceRoot":"","sources":["../../../../src/components/SectionList/SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAwB,IAAI,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO1C,MAAM,aAAa,GAA0D,CAAC,EAC5E,KAAK,EACL,QAAQ,GACT,EAAE,EAAE,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAG,QAAQ,CAAQ,CAAC;AAM9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAC3C,CAAC,EAAE,KAAK,EAAE,KAAK,EAA6B,EAAE,EAAE;IAC9C,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC9B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YACrC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ,IAEA,KAAK,CACD,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,19 +0,0 @@
1
- /// <reference types="react" />
2
- import { FlashListProps } from "@shopify/flash-list";
3
- import { FlatListProps } from "react-native";
4
- declare type ListComponentType = "FlatList" | "FlashList";
5
- interface AdditionalSectionListProps<T> {
6
- sectionKey: string;
7
- renderItem: (itemInfo: {
8
- item?: T;
9
- index: number;
10
- section: string;
11
- }) => JSX.Element;
12
- listComponent?: ListComponentType;
13
- }
14
- declare type FlatListSectionListProps<T> = Omit<FlatListProps<T>, "renderItem"> & AdditionalSectionListProps<T>;
15
- declare type FlashListSectionListProps<T> = Omit<FlashListProps<T>, "renderItem"> & AdditionalSectionListProps<T>;
16
- declare const SectionList: <T extends {
17
- [key: string]: any;
18
- }>({ sectionKey, listComponent, data: dataProp, renderItem: renderItemProp, ...rest }: FlatListSectionListProps<T> | FlashListSectionListProps<T>) => JSX.Element;
19
- export default SectionList;
@@ -1,95 +0,0 @@
1
- import React from "react";
2
- import { FlashList } from "@shopify/flash-list";
3
- import { FlatList } from "react-native";
4
- import SectionHeader, { DefaultSectionHeader } from "./SectionHeader";
5
- const DEFAULT_SECTION = "Uncategorized";
6
- const SectionList = ({ sectionKey, listComponent = "FlatList", data: dataProp, renderItem: renderItemProp, ...rest }) => {
7
- const data = React.useMemo(() => (dataProp || []), [dataProp]);
8
- const dataWithSections = React.useMemo(() => {
9
- var _a;
10
- const result = [];
11
- const sectionDataItems = {};
12
- for (const item of data) {
13
- const section = ((_a = item[sectionKey]) === null || _a === void 0 ? void 0 : _a.toString()) || DEFAULT_SECTION;
14
- if (sectionDataItems[section]) {
15
- sectionDataItems[section].push(item);
16
- }
17
- else {
18
- sectionDataItems[section] = [item];
19
- }
20
- }
21
- for (const section in sectionDataItems) {
22
- result.push({ type: "SECTION_ITEM", title: section });
23
- const sectionItems = sectionDataItems[section].map((item) => ({ type: "DATA_ITEM", data: item }));
24
- result.push(...sectionItems);
25
- }
26
- return result;
27
- }, [data, sectionKey]);
28
- const extractSectionHeader = (element) => {
29
- if (!element) {
30
- return null;
31
- }
32
- const props = element.props || {};
33
- const children = React.Children.toArray(props.children).map((child) => child);
34
- if (element.type === SectionHeader) {
35
- return element;
36
- }
37
- else {
38
- for (const child of children) {
39
- if (child.type === SectionHeader) {
40
- return child;
41
- }
42
- }
43
- }
44
- return null;
45
- };
46
- const extractRemainingNonSectionHeader = (element) => {
47
- if (!element) {
48
- return null;
49
- }
50
- const props = element.props || {};
51
- const children = React.Children.toArray(props.children).map((child) => child);
52
- if (element.type === SectionHeader) {
53
- return null;
54
- }
55
- else {
56
- const newChildren = [];
57
- for (const child of children) {
58
- if (child.type !== SectionHeader) {
59
- newChildren.push(child);
60
- }
61
- }
62
- return React.cloneElement(element, {
63
- ...props,
64
- children: newChildren,
65
- });
66
- }
67
- };
68
- const renderItem = ({ item, index, }) => {
69
- switch (item.type) {
70
- case "SECTION_ITEM": {
71
- const renderedItem = renderItemProp({
72
- index,
73
- section: item.title,
74
- });
75
- return (extractSectionHeader(renderedItem) || (React.createElement(DefaultSectionHeader, { title: item.title })));
76
- }
77
- case "DATA_ITEM": {
78
- const renderedItem = renderItemProp({
79
- item: item.data,
80
- index,
81
- section: item.data[sectionKey] || DEFAULT_SECTION,
82
- });
83
- return extractRemainingNonSectionHeader(renderedItem);
84
- }
85
- }
86
- };
87
- switch (listComponent) {
88
- case "FlatList":
89
- return (React.createElement(FlatList, { ...rest, data: dataWithSections, renderItem: renderItem }));
90
- case "FlashList":
91
- return (React.createElement(FlashList, { ...rest, data: dataWithSections, renderItem: renderItem }));
92
- }
93
- };
94
- export default SectionList;
95
- //# sourceMappingURL=SectionList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SectionList.js","sourceRoot":"","sources":["../../../../src/components/SectionList/SectionList.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export { default as SectionList } from "./SectionList";
2
- export { default as SectionHeader } from "./SectionHeader";
@@ -1,3 +0,0 @@
1
- export { default as SectionList } from "./SectionList";
2
- export { default as SectionHeader } from "./SectionHeader";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/SectionList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,14 +0,0 @@
1
- import React from "react";
2
- import { View, Text } from "react-native";
3
- import { withTheme } from "../../theming";
4
- const SectionHeader = ({ style, children, }) => React.createElement(View, { style: [style] }, children);
5
- export const DefaultSectionHeader = withTheme(({ title, theme }) => {
6
- return (React.createElement(Text, { style: {
7
- color: theme.colors.background,
8
- backgroundColor: theme.colors.primary,
9
- fontSize: 16,
10
- padding: 10,
11
- } }, title));
12
- });
13
- export default SectionHeader;
14
- //# sourceMappingURL=SectionHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SectionHeader.js","sourceRoot":"","sources":["SectionHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAwB,IAAI,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO1C,MAAM,aAAa,GAA0D,CAAC,EAC5E,KAAK,EACL,QAAQ,GACT,EAAE,EAAE,CAAC,oBAAC,IAAI,IAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAG,QAAQ,CAAQ,CAAC;AAM9C,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAC3C,CAAC,EAAE,KAAK,EAAE,KAAK,EAA6B,EAAE,EAAE;IAC9C,OAAO,CACL,oBAAC,IAAI,IACH,KAAK,EAAE;YACL,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU;YAC9B,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO;YACrC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,EAAE;SACZ,IAEA,KAAK,CACD,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -1,36 +0,0 @@
1
- import React from "react";
2
- import { View, StyleProp, ViewStyle, Text } from "react-native";
3
- import { withTheme } from "../../theming";
4
- import type { Theme } from "../../styles/DefaultTheme";
5
-
6
- interface SectionHeaderProps {
7
- style?: StyleProp<ViewStyle>;
8
- }
9
-
10
- const SectionHeader: React.FC<React.PropsWithChildren<SectionHeaderProps>> = ({
11
- style,
12
- children,
13
- }) => <View style={[style]}>{children}</View>;
14
-
15
- interface DefaultSectionHeaderProps {
16
- title: string;
17
- theme: Theme;
18
- }
19
- export const DefaultSectionHeader = withTheme(
20
- ({ title, theme }: DefaultSectionHeaderProps) => {
21
- return (
22
- <Text
23
- style={{
24
- color: theme.colors.background,
25
- backgroundColor: theme.colors.primary,
26
- fontSize: 16,
27
- padding: 10,
28
- }}
29
- >
30
- {title}
31
- </Text>
32
- );
33
- }
34
- );
35
-
36
- export default SectionHeader;
@@ -1,95 +0,0 @@
1
- import React from "react";
2
- import { FlashList } from "@shopify/flash-list";
3
- import { FlatList } from "react-native";
4
- import SectionHeader, { DefaultSectionHeader } from "./SectionHeader";
5
- const DEFAULT_SECTION = "Uncategorized";
6
- const SectionList = ({ sectionKey, listComponent = "FlatList", data: dataProp, renderItem: renderItemProp, ...rest }) => {
7
- const data = React.useMemo(() => (dataProp || []), [dataProp]);
8
- const dataWithSections = React.useMemo(() => {
9
- var _a;
10
- const result = [];
11
- const sectionDataItems = {};
12
- for (const item of data) {
13
- const section = ((_a = item[sectionKey]) === null || _a === void 0 ? void 0 : _a.toString()) || DEFAULT_SECTION;
14
- if (sectionDataItems[section]) {
15
- sectionDataItems[section].push(item);
16
- }
17
- else {
18
- sectionDataItems[section] = [item];
19
- }
20
- }
21
- for (const section in sectionDataItems) {
22
- result.push({ type: "SECTION_ITEM", title: section });
23
- const sectionItems = sectionDataItems[section].map((item) => ({ type: "DATA_ITEM", data: item }));
24
- result.push(...sectionItems);
25
- }
26
- return result;
27
- }, [data, sectionKey]);
28
- const extractSectionHeader = (element) => {
29
- if (!element) {
30
- return null;
31
- }
32
- const props = element.props || {};
33
- const children = React.Children.toArray(props.children).map((child) => child);
34
- if (element.type === SectionHeader) {
35
- return element;
36
- }
37
- else {
38
- for (const child of children) {
39
- if (child.type === SectionHeader) {
40
- return child;
41
- }
42
- }
43
- }
44
- return null;
45
- };
46
- const extractRemainingNonSectionHeader = (element) => {
47
- if (!element) {
48
- return null;
49
- }
50
- const props = element.props || {};
51
- const children = React.Children.toArray(props.children).map((child) => child);
52
- if (element.type === SectionHeader) {
53
- return null;
54
- }
55
- else {
56
- const newChildren = [];
57
- for (const child of children) {
58
- if (child.type !== SectionHeader) {
59
- newChildren.push(child);
60
- }
61
- }
62
- return React.cloneElement(element, {
63
- ...props,
64
- children: newChildren,
65
- });
66
- }
67
- };
68
- const renderItem = ({ item, index, }) => {
69
- switch (item.type) {
70
- case "SECTION_ITEM": {
71
- const renderedItem = renderItemProp({
72
- index,
73
- section: item.title,
74
- });
75
- return (extractSectionHeader(renderedItem) || (React.createElement(DefaultSectionHeader, { title: item.title })));
76
- }
77
- case "DATA_ITEM": {
78
- const renderedItem = renderItemProp({
79
- item: item.data,
80
- index,
81
- section: item.data[sectionKey] || DEFAULT_SECTION,
82
- });
83
- return extractRemainingNonSectionHeader(renderedItem);
84
- }
85
- }
86
- };
87
- switch (listComponent) {
88
- case "FlatList":
89
- return (React.createElement(FlatList, { ...rest, data: dataWithSections, renderItem: renderItem }));
90
- case "FlashList":
91
- return (React.createElement(FlashList, { ...rest, data: dataWithSections, renderItem: renderItem }));
92
- }
93
- };
94
- export default SectionList;
95
- //# sourceMappingURL=SectionList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SectionList.js","sourceRoot":"","sources":["SectionList.tsx"],"names":[],"mappings":"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"}
@@ -1,171 +0,0 @@
1
- import React from "react";
2
- import { FlashListProps, FlashList } from "@shopify/flash-list";
3
- import { FlatListProps, FlatList } from "react-native";
4
- import SectionHeader, { DefaultSectionHeader } from "./SectionHeader";
5
-
6
- type ListComponentType = "FlatList" | "FlashList";
7
-
8
- interface AdditionalSectionListProps<T> {
9
- sectionKey: string;
10
- renderItem: (itemInfo: {
11
- item?: T;
12
- index: number;
13
- section: string;
14
- }) => JSX.Element;
15
- listComponent?: ListComponentType;
16
- }
17
-
18
- type FlatListSectionListProps<T> = Omit<FlatListProps<T>, "renderItem"> &
19
- AdditionalSectionListProps<T>;
20
-
21
- type FlashListSectionListProps<T> = Omit<FlashListProps<T>, "renderItem"> &
22
- AdditionalSectionListProps<T>;
23
-
24
- interface SectionListDataItem<T> {
25
- type: "DATA_ITEM";
26
- data: T;
27
- }
28
-
29
- interface SectionListSectionItem {
30
- type: "SECTION_ITEM";
31
- title: string;
32
- }
33
-
34
- type SectionListItem<T> = SectionListDataItem<T> | SectionListSectionItem;
35
-
36
- const DEFAULT_SECTION = "Uncategorized";
37
-
38
- const SectionList = <T extends { [key: string]: any }>({
39
- sectionKey,
40
- listComponent = "FlatList",
41
- data: dataProp,
42
- renderItem: renderItemProp,
43
- ...rest
44
- }: FlatListSectionListProps<T> | FlashListSectionListProps<T>) => {
45
- const data = React.useMemo(() => (dataProp || []) as T[], [dataProp]);
46
-
47
- const dataWithSections = React.useMemo(() => {
48
- const result: SectionListItem<T>[] = [];
49
- const sectionDataItems: { [key: string]: T[] } = {};
50
-
51
- for (const item of data) {
52
- const section = item[sectionKey]?.toString() || DEFAULT_SECTION;
53
- if (sectionDataItems[section]) {
54
- sectionDataItems[section].push(item);
55
- } else {
56
- sectionDataItems[section] = [item];
57
- }
58
- }
59
-
60
- for (const section in sectionDataItems) {
61
- result.push({ type: "SECTION_ITEM", title: section });
62
- const sectionItems: SectionListDataItem<T>[] = sectionDataItems[
63
- section
64
- ].map((item) => ({ type: "DATA_ITEM", data: item }));
65
- result.push(...sectionItems);
66
- }
67
-
68
- return result;
69
- }, [data, sectionKey]);
70
-
71
- const extractSectionHeader = (
72
- element: JSX.Element | null
73
- ): JSX.Element | null => {
74
- if (!element) {
75
- return null;
76
- }
77
-
78
- const props = element.props || {};
79
- const children = React.Children.toArray(props.children).map(
80
- (child) => child as React.ReactElement
81
- );
82
- if (element.type === SectionHeader) {
83
- return element;
84
- } else {
85
- for (const child of children) {
86
- if (child.type === SectionHeader) {
87
- return child;
88
- }
89
- }
90
- }
91
- return null;
92
- };
93
-
94
- const extractRemainingNonSectionHeader = (
95
- element: JSX.Element | null
96
- ): JSX.Element | null => {
97
- if (!element) {
98
- return null;
99
- }
100
-
101
- const props = element.props || {};
102
- const children = React.Children.toArray(props.children).map(
103
- (child) => child as React.ReactElement
104
- );
105
- if (element.type === SectionHeader) {
106
- return null;
107
- } else {
108
- const newChildren = [];
109
- for (const child of children) {
110
- if (child.type !== SectionHeader) {
111
- newChildren.push(child);
112
- }
113
- }
114
- return React.cloneElement(element, {
115
- ...props,
116
- children: newChildren,
117
- });
118
- }
119
- };
120
-
121
- const renderItem = ({
122
- item,
123
- index,
124
- }: {
125
- item: SectionListItem<T>;
126
- index: number;
127
- }) => {
128
- switch (item.type) {
129
- case "SECTION_ITEM": {
130
- const renderedItem = renderItemProp({
131
- index,
132
- section: item.title,
133
- });
134
- return (
135
- extractSectionHeader(renderedItem) || (
136
- <DefaultSectionHeader title={item.title} />
137
- )
138
- );
139
- }
140
- case "DATA_ITEM": {
141
- const renderedItem = renderItemProp({
142
- item: item.data,
143
- index,
144
- section: item.data[sectionKey] || DEFAULT_SECTION,
145
- });
146
- return extractRemainingNonSectionHeader(renderedItem);
147
- }
148
- }
149
- };
150
-
151
- switch (listComponent) {
152
- case "FlatList":
153
- return (
154
- <FlatList
155
- {...(rest as FlatListProps<SectionListItem<T>>)}
156
- data={dataWithSections}
157
- renderItem={renderItem}
158
- />
159
- );
160
- case "FlashList":
161
- return (
162
- <FlashList
163
- {...(rest as FlashListProps<SectionListItem<T>>)}
164
- data={dataWithSections}
165
- renderItem={renderItem}
166
- />
167
- );
168
- }
169
- };
170
-
171
- export default SectionList;
@@ -1,3 +0,0 @@
1
- export { default as SectionList } from "./SectionList";
2
- export { default as SectionHeader } from "./SectionHeader";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -1,2 +0,0 @@
1
- export { default as SectionList } from "./SectionList";
2
- export { default as SectionHeader } from "./SectionHeader";