@unbxd-ui/unbxd-react-components 0.2.107-beta.2 → 0.2.108-beta.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.
- package/components/Accordian/Accordian.js +13 -45
- package/components/Accordian/Accordian.stories.js +6 -25
- package/components/Accordian/index.js +0 -3
- package/components/Button/Button.js +9 -26
- package/components/Button/Button.stories.js +1 -14
- package/components/Button/DropdownButton.js +9 -31
- package/components/Button/DropdownButton.stories.js +6 -23
- package/components/Button/index.js +1 -8
- package/components/DataLoader/DataLoader.js +10 -40
- package/components/DataLoader/DataLoader.stories.js +5 -30
- package/components/DataLoader/index.js +0 -3
- package/components/Form/Checkbox.js +18 -43
- package/components/Form/DragDropFileUploader.js +12 -42
- package/components/Form/Dropdown.js +106 -182
- package/components/Form/FileUploader.js +10 -32
- package/components/Form/Form.js +15 -45
- package/components/Form/FormElementWrapper.js +2 -7
- package/components/Form/Input.js +27 -72
- package/components/Form/RadioList.js +20 -49
- package/components/Form/RangeSlider.js +39 -74
- package/components/Form/ServerPaginatedDDList.js +86 -130
- package/components/Form/Textarea.js +18 -43
- package/components/Form/Toggle.js +16 -48
- package/components/Form/index.js +18 -30
- package/components/Form/stories/Checkbox.stories.js +1 -12
- package/components/Form/stories/DragDropFileUploader.stories.js +0 -8
- package/components/Form/stories/Dropdown.stories.js +6 -24
- package/components/Form/stories/FileUploader.stories.js +0 -8
- package/components/Form/stories/FormDefault.stories.js +1 -21
- package/components/Form/stories/RadioList.stories.js +1 -12
- package/components/Form/stories/RangeSlider.stories.js +1 -15
- package/components/Form/stories/TextInput.stories.js +3 -19
- package/components/Form/stories/Textarea.stories.js +1 -12
- package/components/Form/stories/Toggle.stories.js +0 -7
- package/components/Form/stories/form.stories.js +3 -40
- package/components/InlineModal/InlineModal.js +14 -51
- package/components/InlineModal/InlineModal.stories.js +2 -14
- package/components/InlineModal/index.js +1 -6
- package/components/List/List.js +9 -24
- package/components/List/index.js +0 -3
- package/components/List/list.stories.js +0 -10
- package/components/Modal/Modal.js +17 -49
- package/components/Modal/Modal.stories.js +1 -15
- package/components/Modal/index.js +0 -3
- package/components/NotificationComponent/NotificationComponent.js +11 -34
- package/components/NotificationComponent/NotificationComponent.stories.js +0 -6
- package/components/NotificationComponent/index.js +0 -3
- package/components/ProgressBar/ProgressBar.js +2 -11
- package/components/ProgressBar/ProgressBar.stories.js +0 -6
- package/components/ProgressBar/index.js +0 -3
- package/components/Table/BaseTable.js +69 -134
- package/components/Table/PaginationComponent.js +11 -23
- package/components/Table/Table.js +68 -149
- package/components/Table/Table.stories.js +22 -67
- package/components/Table/index.js +0 -4
- package/components/TabsComponent/TabsComponent.js +20 -57
- package/components/TabsComponent/TabsComponent.stories.js +0 -16
- package/components/TabsComponent/index.js +0 -3
- package/components/Tooltip/Tooltip.js +25 -47
- package/components/Tooltip/Tooltip.stories.js +0 -6
- package/components/Tooltip/index.js +0 -3
- package/components/core.css +3 -1
- package/components/index.js +1 -17
- package/components/theme.css +2 -0
- package/package.json +3 -2
- package/.babelrc +0 -4
- package/.eslintrc.js +0 -38
- package/CONTRIBUTE.md +0 -105
- package/README.md +0 -82
- package/lib/components/Accordian/Accordian.js +0 -117
- package/lib/components/Accordian/Accordian.stories.js +0 -137
- package/lib/components/Accordian/index.js +0 -10
- package/lib/components/Button/Button.js +0 -84
- package/lib/components/Button/Button.stories.js +0 -89
- package/lib/components/Button/DropdownButton.js +0 -77
- package/lib/components/Button/DropdownButton.stories.js +0 -51
- package/lib/components/Button/index.js +0 -32
- package/lib/components/DataLoader/DataLoader.js +0 -88
- package/lib/components/DataLoader/DataLoader.stories.js +0 -77
- package/lib/components/DataLoader/index.js +0 -10
- package/lib/components/Form/Checkbox.js +0 -93
- package/lib/components/Form/DragDropFileUploader.js +0 -85
- package/lib/components/Form/Dropdown.js +0 -478
- package/lib/components/Form/FileUploader.js +0 -81
- package/lib/components/Form/Form.js +0 -106
- package/lib/components/Form/FormElementWrapper.js +0 -27
- package/lib/components/Form/Input.js +0 -140
- package/lib/components/Form/RadioList.js +0 -111
- package/lib/components/Form/RangeSlider.js +0 -142
- package/lib/components/Form/ServerPaginatedDDList.js +0 -267
- package/lib/components/Form/Textarea.js +0 -95
- package/lib/components/Form/Toggle.js +0 -117
- package/lib/components/Form/index.js +0 -73
- package/lib/components/Form/stories/Checkbox.stories.js +0 -54
- package/lib/components/Form/stories/DragDropFileUploader.stories.js +0 -27
- package/lib/components/Form/stories/Dropdown.stories.js +0 -114
- package/lib/components/Form/stories/FileUploader.stories.js +0 -31
- package/lib/components/Form/stories/FormDefault.stories.js +0 -117
- package/lib/components/Form/stories/RadioList.stories.js +0 -55
- package/lib/components/Form/stories/RangeSlider.stories.js +0 -82
- package/lib/components/Form/stories/TextInput.stories.js +0 -79
- package/lib/components/Form/stories/Textarea.stories.js +0 -48
- package/lib/components/Form/stories/Toggle.stories.js +0 -25
- package/lib/components/Form/stories/form.stories.js +0 -240
- package/lib/components/InlineModal/InlineModal.js +0 -146
- package/lib/components/InlineModal/InlineModal.stories.js +0 -61
- package/lib/components/InlineModal/index.js +0 -24
- package/lib/components/List/List.js +0 -76
- package/lib/components/List/index.js +0 -10
- package/lib/components/List/list.stories.js +0 -38
- package/lib/components/Modal/Modal.js +0 -117
- package/lib/components/Modal/Modal.stories.js +0 -55
- package/lib/components/Modal/index.js +0 -10
- package/lib/components/NotificationComponent/NotificationComponent.js +0 -76
- package/lib/components/NotificationComponent/NotificationComponent.stories.js +0 -29
- package/lib/components/NotificationComponent/index.js +0 -10
- package/lib/components/ProgressBar/ProgressBar.js +0 -49
- package/lib/components/ProgressBar/ProgressBar.stories.js +0 -21
- package/lib/components/ProgressBar/index.js +0 -10
- package/lib/components/Table/BaseTable.js +0 -352
- package/lib/components/Table/PaginationComponent.js +0 -87
- package/lib/components/Table/Table.js +0 -333
- package/lib/components/Table/Table.stories.js +0 -204
- package/lib/components/Table/index.js +0 -17
- package/lib/components/TabsComponent/TabsComponent.js +0 -134
- package/lib/components/TabsComponent/TabsComponent.stories.js +0 -65
- package/lib/components/TabsComponent/index.js +0 -10
- package/lib/components/Tooltip/Tooltip.js +0 -102
- package/lib/components/Tooltip/Tooltip.stories.js +0 -25
- package/lib/components/Tooltip/index.js +0 -10
- package/lib/components/core.css +0 -3
- package/lib/components/core.scss +0 -29
- package/lib/components/index.js +0 -159
- package/lib/components/theme.css +0 -3
- package/lib/components/theme.scss +0 -11
- package/lib/package-lock.json +0 -20607
- package/lib/package.json +0 -94
- package/src/Intro.stories.mdx +0 -119
- package/src/components/Accordian/Accordian.js +0 -89
- package/src/components/Accordian/Accordian.stories.js +0 -92
- package/src/components/Accordian/accordianCore.css +0 -1
- package/src/components/Accordian/accordianCore.scss +0 -8
- package/src/components/Accordian/accordianTheme.css +0 -1
- package/src/components/Accordian/accordianTheme.scss +0 -6
- package/src/components/Accordian/index.js +0 -3
- package/src/components/Button/Button.js +0 -67
- package/src/components/Button/Button.stories.js +0 -103
- package/src/components/Button/DropdownButton.js +0 -60
- package/src/components/Button/DropdownButton.stories.js +0 -38
- package/src/components/Button/button.css +0 -1
- package/src/components/Button/buttonTheme.css +0 -1
- package/src/components/Button/buttonTheme.scss +0 -45
- package/src/components/Button/index.js +0 -5
- package/src/components/DataLoader/DataLoader.js +0 -86
- package/src/components/DataLoader/DataLoader.stories.js +0 -72
- package/src/components/DataLoader/index.js +0 -3
- package/src/components/Form/Checkbox.js +0 -73
- package/src/components/Form/DragDropFileUploader.js +0 -67
- package/src/components/Form/Dropdown.js +0 -430
- package/src/components/Form/FileUploader.js +0 -64
- package/src/components/Form/Form.js +0 -83
- package/src/components/Form/FormElementWrapper.js +0 -22
- package/src/components/Form/Input.js +0 -121
- package/src/components/Form/RadioList.js +0 -86
- package/src/components/Form/RangeSlider.js +0 -100
- package/src/components/Form/ServerPaginatedDDList.js +0 -231
- package/src/components/Form/Textarea.js +0 -76
- package/src/components/Form/Toggle.js +0 -96
- package/src/components/Form/form.css +0 -1
- package/src/components/Form/formCore.css +0 -1
- package/src/components/Form/formCore.scss +0 -142
- package/src/components/Form/formTheme.css +0 -1
- package/src/components/Form/formTheme.scss +0 -27
- package/src/components/Form/index.js +0 -13
- package/src/components/Form/stories/Checkbox.stories.js +0 -41
- package/src/components/Form/stories/DragDropFileUploader.stories.js +0 -21
- package/src/components/Form/stories/Dropdown.stories.js +0 -124
- package/src/components/Form/stories/FileUploader.stories.js +0 -21
- package/src/components/Form/stories/FormDefault.stories.js +0 -87
- package/src/components/Form/stories/RadioList.stories.js +0 -48
- package/src/components/Form/stories/RangeSlider.stories.js +0 -84
- package/src/components/Form/stories/TextInput.stories.js +0 -77
- package/src/components/Form/stories/Textarea.stories.js +0 -43
- package/src/components/Form/stories/Toggle.stories.js +0 -14
- package/src/components/Form/stories/form.stories.js +0 -216
- package/src/components/InlineModal/InlineModal.js +0 -135
- package/src/components/InlineModal/InlineModal.stories.js +0 -54
- package/src/components/InlineModal/index.js +0 -4
- package/src/components/InlineModal/inlineModal.css +0 -1
- package/src/components/InlineModal/inlineModalCore.css +0 -1
- package/src/components/InlineModal/inlineModalCore.scss +0 -31
- package/src/components/InlineModal/inlineModalTheme.css +0 -1
- package/src/components/InlineModal/inlineModalTheme.scss +0 -16
- package/src/components/List/List.js +0 -72
- package/src/components/List/index.js +0 -3
- package/src/components/List/list.css +0 -1
- package/src/components/List/list.stories.js +0 -28
- package/src/components/List/listCore.css +0 -1
- package/src/components/List/listCore.scss +0 -6
- package/src/components/List/listTheme.css +0 -0
- package/src/components/List/listTheme.scss +0 -0
- package/src/components/Modal/Modal.js +0 -99
- package/src/components/Modal/Modal.stories.js +0 -54
- package/src/components/Modal/index.js +0 -3
- package/src/components/Modal/modal.css +0 -1
- package/src/components/Modal/modalCore.css +0 -1
- package/src/components/Modal/modalCore.scss +0 -34
- package/src/components/Modal/modalTheme.css +0 -0
- package/src/components/Modal/modalTheme.scss +0 -0
- package/src/components/NotificationComponent/NotificationComponent.js +0 -58
- package/src/components/NotificationComponent/NotificationComponent.stories.js +0 -28
- package/src/components/NotificationComponent/index.js +0 -3
- package/src/components/NotificationComponent/notificationComponent.css +0 -1
- package/src/components/NotificationComponent/notificationTheme.css +0 -1
- package/src/components/NotificationComponent/notificationTheme.scss +0 -30
- package/src/components/ProgressBar/ProgressBar.js +0 -45
- package/src/components/ProgressBar/ProgressBar.stories.js +0 -14
- package/src/components/ProgressBar/index.js +0 -3
- package/src/components/ProgressBar/progressBar.css +0 -1
- package/src/components/ProgressBar/progressBarCore.css +0 -1
- package/src/components/ProgressBar/progressBarCore.scss +0 -14
- package/src/components/ProgressBar/progressBarTheme.css +0 -0
- package/src/components/ProgressBar/progressBarTheme.scss +0 -0
- package/src/components/Table/BaseTable.js +0 -306
- package/src/components/Table/PaginationComponent.js +0 -73
- package/src/components/Table/Table.js +0 -295
- package/src/components/Table/Table.stories.js +0 -198
- package/src/components/Table/index.js +0 -8
- package/src/components/Table/table.css +0 -1
- package/src/components/Table/tableCore.css +0 -1
- package/src/components/Table/tableCore.scss +0 -94
- package/src/components/Table/tableTheme.css +0 -1
- package/src/components/Table/tableTheme.scss +0 -34
- package/src/components/TabsComponent/TabsComponent.js +0 -99
- package/src/components/TabsComponent/TabsComponent.stories.js +0 -69
- package/src/components/TabsComponent/index.js +0 -3
- package/src/components/TabsComponent/tabs.css +0 -1
- package/src/components/TabsComponent/tabsCore.css +0 -1
- package/src/components/TabsComponent/tabsCore.scss +0 -59
- package/src/components/TabsComponent/tabsTheme.css +0 -0
- package/src/components/TabsComponent/tabsTheme.scss +0 -0
- package/src/components/Tooltip/Tooltip.js +0 -87
- package/src/components/Tooltip/Tooltip.stories.js +0 -16
- package/src/components/Tooltip/index.js +0 -3
- package/src/components/Tooltip/tooltipCore.css +0 -1
- package/src/components/Tooltip/tooltipCore.scss +0 -22
- package/src/components/Tooltip/tooltipTheme.css +0 -1
- package/src/components/Tooltip/tooltipTheme.scss +0 -21
- package/src/components/core.css +0 -1
- package/src/components/core.scss +0 -29
- package/src/components/index.js +0 -38
- package/src/components/theme.css +0 -1
- package/src/components/theme.scss +0 -11
- package/src/core/Validators.js +0 -34
- package/src/core/customHooks.js +0 -20
- package/src/core/dataLoader.js +0 -143
- package/src/core/dataLoader.stories.js +0 -123
- package/src/core/index.js +0 -3
- package/src/core/utils.js +0 -95
- package/src/index.js +0 -68
- package/vscode-templates/NewStoryTemplate.stories.js +0 -8
- /package/{lib/Readme.md → Readme.md} +0 -0
- /package/{lib/components → components}/Accordian/accordianCore.css +0 -0
- /package/{lib/components → components}/Accordian/accordianTheme.css +0 -0
- /package/{lib/components → components}/Button/buttonTheme.css +0 -0
- /package/{lib/components → components}/Form/formCore.css +0 -0
- /package/{lib/components → components}/Form/formTheme.css +0 -0
- /package/{lib/components → components}/InlineModal/inlineModalCore.css +0 -0
- /package/{lib/components → components}/InlineModal/inlineModalTheme.css +0 -0
- /package/{lib/components → components}/List/listCore.css +0 -0
- /package/{lib/components → components}/List/listTheme.css +0 -0
- /package/{lib/components → components}/Modal/modalCore.css +0 -0
- /package/{lib/components → components}/Modal/modalTheme.css +0 -0
- /package/{lib/components → components}/NotificationComponent/notificationTheme.css +0 -0
- /package/{lib/components → components}/ProgressBar/progressBarCore.css +0 -0
- /package/{lib/components → components}/ProgressBar/progressBarTheme.css +0 -0
- /package/{lib/components → components}/Table/tableCore.css +0 -0
- /package/{lib/components → components}/Table/tableTheme.css +0 -0
- /package/{lib/components → components}/TabsComponent/tabsCore.css +0 -0
- /package/{lib/components → components}/TabsComponent/tabsTheme.css +0 -0
- /package/{lib/components → components}/Tooltip/tooltipCore.css +0 -0
- /package/{lib/components → components}/Tooltip/tooltipTheme.css +0 -0
- /package/{lib/core → core}/Validators.js +0 -0
- /package/{lib/core → core}/customHooks.js +0 -0
- /package/{lib/core → core}/dataLoader.js +0 -0
- /package/{lib/core → core}/dataLoader.stories.js +0 -0
- /package/{lib/core → core}/index.js +0 -0
- /package/{lib/core → core}/utils.js +0 -0
- /package/{lib/index.js → index.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.RCB-btn{border-radius:3px;cursor:pointer}.RCB-btn-default:hover{background:#f3f3f3}.RCB-btn-primary{background:#1fa7fd;color:#FFF;border:0}.RCB-btn-primary:hover{background:#208dd2}.RCB-btn-secondary{background:#FFF;border:1px solid #95c7e7}.RCB-btn-secondary:hover{background:#eef8ff}.RCB-btn-small{padding:6px 8px}.RCB-btn-medium{padding:10px 15px}.RCB-btn-large{padding:15px 22px}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
.RCB {
|
|
2
|
-
&-btn {
|
|
3
|
-
border-radius: 3px;
|
|
4
|
-
cursor: pointer;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
&-btn {
|
|
8
|
-
&-default {
|
|
9
|
-
&:hover {
|
|
10
|
-
background: #f3f3f3;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
&-primary {
|
|
15
|
-
background: #1fa7fd;
|
|
16
|
-
color: #FFF;
|
|
17
|
-
border: 0;
|
|
18
|
-
|
|
19
|
-
&:hover {
|
|
20
|
-
background: #208dd2;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&-secondary {
|
|
25
|
-
background: #FFF;
|
|
26
|
-
border: 1px solid #95c7e7;
|
|
27
|
-
|
|
28
|
-
&:hover {
|
|
29
|
-
background: #eef8ff;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
&-small {
|
|
34
|
-
padding: 6px 8px;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
&-medium {
|
|
38
|
-
padding: 10px 15px;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
&-large {
|
|
42
|
-
padding: 15px 22px;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect, Fragment } from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import Promise from "bluebird";
|
|
4
|
-
import dequal from "dequal";
|
|
5
|
-
import dataLoader from "../../core/dataLoader";
|
|
6
|
-
import cloneDeep from "lodash.clonedeep";
|
|
7
|
-
import utils from "../../core/utils";
|
|
8
|
-
|
|
9
|
-
const DefaultLoader = () => {
|
|
10
|
-
return (<div>Loading...</div>);
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const loadData = (requests) => {
|
|
14
|
-
let promisesArray = requests.map(reqObj => {
|
|
15
|
-
return dataLoader.getRequestDef(reqObj);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
return Promise.all(promisesArray);
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
const DataLoader = (props) => {
|
|
22
|
-
const [ isLoading, setIsLoading ] = useState(true);
|
|
23
|
-
const dataRef = React.useRef();
|
|
24
|
-
const { children, Loader, requests, onDataLoaded, onDataFailed } = props;
|
|
25
|
-
|
|
26
|
-
const renderLoader = () => {
|
|
27
|
-
const LoaderComponent = Loader || utils.getDefaultConfig("DefaultLoader") || DefaultLoader;
|
|
28
|
-
return <LoaderComponent />;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
const renderChildren = () => {
|
|
32
|
-
return children;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
const fetchData = () => {
|
|
36
|
-
setIsLoading(true);
|
|
37
|
-
loadData(requests)
|
|
38
|
-
.then(resultsArray => {
|
|
39
|
-
onDataLoaded(resultsArray);
|
|
40
|
-
})
|
|
41
|
-
.catch(exception => {
|
|
42
|
-
onDataFailed(exception);
|
|
43
|
-
})
|
|
44
|
-
.finally(() => {
|
|
45
|
-
setIsLoading(false);
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
/*
|
|
51
|
-
As useEffect does not do a deep comparision on dependent props,
|
|
52
|
-
do a manual deep comparision to decide whether to load data
|
|
53
|
-
*/
|
|
54
|
-
if (!dequal(requests, dataRef.current)) {
|
|
55
|
-
dataRef.current = cloneDeep(requests);
|
|
56
|
-
fetchData();
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
return (<Fragment>
|
|
61
|
-
{isLoading ?
|
|
62
|
-
renderLoader()
|
|
63
|
-
: renderChildren()}
|
|
64
|
-
</Fragment>);
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
DataLoader.propTypes = {
|
|
68
|
-
/** Requests array */
|
|
69
|
-
requests: PropTypes.array.isRequired,
|
|
70
|
-
/** Callback function which is called when data is loaded */
|
|
71
|
-
onDataLoaded: PropTypes.func,
|
|
72
|
-
/** Callback function which is called when data fetching fails */
|
|
73
|
-
onDataFailed: PropTypes.func,
|
|
74
|
-
/** Custom loader component */
|
|
75
|
-
Loader: PropTypes.oneOfType([
|
|
76
|
-
PropTypes.instanceOf(Element),
|
|
77
|
-
PropTypes.func
|
|
78
|
-
])
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
DataLoader.defaultProps = {
|
|
82
|
-
onDataLoaded: () => {},
|
|
83
|
-
onDataFailed: () => {}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
export default DataLoader;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import React, { Fragment } from "react";
|
|
2
|
-
import DataLoader from "./DataLoader";
|
|
3
|
-
import dataLoader from "../../core/dataLoader";
|
|
4
|
-
|
|
5
|
-
export const SimpleUsage = () => {
|
|
6
|
-
dataLoader.addRequestConfig("getTodos", {
|
|
7
|
-
method: "GET",
|
|
8
|
-
url: "https://jsonplaceholder.typicode.com/todos",
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
const onDataLoaded = ([todos]) => {
|
|
12
|
-
console.log(todos);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const onDataFailed = e => {
|
|
16
|
-
console.log("Error ", e);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const requests = [
|
|
20
|
-
{
|
|
21
|
-
requestId: "getTodos",
|
|
22
|
-
},
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
return (<Fragment>
|
|
26
|
-
<p>Use the <code>DataLoader</code> component to make implicit API calls by wrapping the JSX content where you want the API data with this component.
|
|
27
|
-
This would mostly be used for GET calls.</p>
|
|
28
|
-
<DataLoader requests={requests} onDataLoaded={onDataLoaded} onDataFailed={onDataFailed}>
|
|
29
|
-
<div>Received the data</div>
|
|
30
|
-
</DataLoader>
|
|
31
|
-
</Fragment>);
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const FunctionUrl = () => {
|
|
35
|
-
dataLoader.addRequestConfig("getTodoById", {
|
|
36
|
-
method: "GET",
|
|
37
|
-
url: function(params) {
|
|
38
|
-
return `https://jsonplaceholder.typicode.com/todos/${params.id}`;
|
|
39
|
-
},
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
const onDataLoaded = ([todo]) => {
|
|
43
|
-
console.log(todo);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const onDataFailed = e => {
|
|
47
|
-
console.log("Error ", e);
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
const requests = [
|
|
51
|
-
{
|
|
52
|
-
requestId: "getTodoById",
|
|
53
|
-
urlParams: {
|
|
54
|
-
id: 1,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
];
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<DataLoader requests={requests} onDataLoaded={onDataLoaded} onDataFailed={onDataFailed}>
|
|
61
|
-
<div>Recieved todo data</div>
|
|
62
|
-
</DataLoader>
|
|
63
|
-
);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
FunctionUrl.story = {
|
|
67
|
-
name: "Function URL",
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export default {
|
|
71
|
-
title: "Data fetching|DataLoader (Component)"
|
|
72
|
-
};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import React, { useContext, useEffect } from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import { FormContext } from "./Form";
|
|
4
|
-
import FormElementWrapper from "./FormElementWrapper";
|
|
5
|
-
|
|
6
|
-
const Checkbox = (props) => {
|
|
7
|
-
const { label, name, className, value, defaultValue, appearance, onChange, ...restProps } = props;
|
|
8
|
-
const { onValueChange } = useContext(FormContext);
|
|
9
|
-
|
|
10
|
-
const postFormValueChange = (value) => {
|
|
11
|
-
typeof(onValueChange) === "function" && onValueChange(name, value);
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
const onInputChange = (event) => {
|
|
15
|
-
const value = event.target.checked;
|
|
16
|
-
|
|
17
|
-
if (typeof(onChange) === "function") {
|
|
18
|
-
onChange(value);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
postFormValueChange(value);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
/* set the initial form element value in the form context */
|
|
26
|
-
const postValue = typeof(onChange) === "function" ? value : defaultValue;
|
|
27
|
-
postFormValueChange(postValue);
|
|
28
|
-
}, [value, defaultValue]);
|
|
29
|
-
|
|
30
|
-
let inputProps = {
|
|
31
|
-
type: "checkbox",
|
|
32
|
-
label,
|
|
33
|
-
name,
|
|
34
|
-
id: name,
|
|
35
|
-
defaultChecked: defaultValue,
|
|
36
|
-
className: "RCB-form-el",
|
|
37
|
-
onChange: onInputChange,
|
|
38
|
-
...restProps
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
if (typeof(onChange) === "function") {
|
|
42
|
-
/* make it a controlled component if onChange function is given */
|
|
43
|
-
inputProps.checked = value;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return (<FormElementWrapper className={className} appearance={appearance}>
|
|
47
|
-
<input {...inputProps} data-hj-allow />
|
|
48
|
-
<label className="RCB-form-el-label" htmlFor={name}>{label}</label>
|
|
49
|
-
</FormElementWrapper>);
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
Checkbox.propTypes = {
|
|
53
|
-
/** Pass any additional classNames to Input component */
|
|
54
|
-
className: PropTypes.string,
|
|
55
|
-
/** Label for the input element */
|
|
56
|
-
label: PropTypes.any,
|
|
57
|
-
/** Unique ID for the input element */
|
|
58
|
-
name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
|
|
59
|
-
/** Will be used only with onChange function, or else ignored */
|
|
60
|
-
value: PropTypes.bool,
|
|
61
|
-
defaultValue: PropTypes.bool,
|
|
62
|
-
/** Define the appearance of the form element. Accepted values are either "inline" or "block" */
|
|
63
|
-
appearance: PropTypes.oneOf(["inline", "block"]),
|
|
64
|
-
/** Becomes a controlled component if onChange function is given */
|
|
65
|
-
onChange: PropTypes.func
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
Checkbox.defaultProps = {
|
|
69
|
-
className: "",
|
|
70
|
-
appearance: "inline"
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
export default Checkbox;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import React, { useState, useContext } from "react";
|
|
2
|
-
import PropTypes from "prop-types";
|
|
3
|
-
import { FormContext } from "./Form";
|
|
4
|
-
import FormElementWrapper from "./FormElementWrapper";
|
|
5
|
-
|
|
6
|
-
const DragDropFileUploader = (props) => {
|
|
7
|
-
const { name, label, children, onChange, className, appearance } = props;
|
|
8
|
-
const [ isDragOver, setIsDragOver ] = useState(false);
|
|
9
|
-
const { onValueChange } = useContext(FormContext);
|
|
10
|
-
|
|
11
|
-
const onDragEnter = () => {
|
|
12
|
-
setIsDragOver(true);
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
const onDragLeave = () => {
|
|
16
|
-
setIsDragOver(false);
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
const onDragOver = (event) => {
|
|
20
|
-
event.preventDefault();
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
const onDrop = (event) => {
|
|
24
|
-
event.preventDefault();
|
|
25
|
-
let value = event.dataTransfer.files;
|
|
26
|
-
|
|
27
|
-
if (typeof(onChange) === "function") {
|
|
28
|
-
onChange(value);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
typeof(onValueChange) === "function" && onValueChange(name, value);
|
|
32
|
-
|
|
33
|
-
setIsDragOver(false);
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
return (<FormElementWrapper className={className} appearance={appearance}>
|
|
37
|
-
<label className="RCB-form-el-label">{label}</label>
|
|
38
|
-
<div onDragEnter={onDragEnter} onDragLeave={onDragLeave}
|
|
39
|
-
onDragOver={onDragOver} onDrop={onDrop}
|
|
40
|
-
className={`RCB-drag-drop-uploader ${isDragOver ? "RCB-drag-over" : ""}`}>
|
|
41
|
-
{children}
|
|
42
|
-
</div>
|
|
43
|
-
</FormElementWrapper>);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
DragDropFileUploader.propTypes = {
|
|
47
|
-
/** Pass any additional classNames to Input component */
|
|
48
|
-
className: PropTypes.string,
|
|
49
|
-
/** Label for the input element */
|
|
50
|
-
label: PropTypes.string,
|
|
51
|
-
/** Unique ID for the input element */
|
|
52
|
-
name: PropTypes.string.isRequired,
|
|
53
|
-
/** mime type of the acceptable files */
|
|
54
|
-
accept: PropTypes.string,
|
|
55
|
-
/** Define the appearance of the form element. Accepted values are either "inline" or "block" */
|
|
56
|
-
appearance: PropTypes.oneOf(["inline", "block"]),
|
|
57
|
-
/** Becomes a controlled component if onChange function is given */
|
|
58
|
-
onChange: PropTypes.func
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
DragDropFileUploader.defaultProps = {
|
|
62
|
-
className: "",
|
|
63
|
-
appearance: "inline",
|
|
64
|
-
accept: "image/*"
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
export default DragDropFileUploader;
|