@bigbinary/neeto-molecules 3.3.18 → 3.3.20
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/README.md +1 -0
- package/dist/MobilePreviewHeader.js +25 -0
- package/dist/MobilePreviewHeader.js.map +1 -0
- package/dist/StatusDropdown.js +102 -0
- package/dist/StatusDropdown.js.map +1 -0
- package/dist/cjs/MobilePreviewHeader.js +32 -0
- package/dist/cjs/MobilePreviewHeader.js.map +1 -0
- package/dist/cjs/StatusDropdown.js +112 -0
- package/dist/cjs/StatusDropdown.js.map +1 -0
- package/package.json +1 -1
- package/src/translations/en.json +3 -0
- package/types/MobilePreviewHeader.d.ts +17 -0
- package/types/StatusDropdown.d.ts +72 -0
package/README.md
CHANGED
|
@@ -69,6 +69,7 @@ https://neeto-molecules.neeto.com/
|
|
|
69
69
|
- [ShareViaEmail](./docs/components/ShareViaEmail.md)
|
|
70
70
|
- [ShareViaLink](./docs/components/ShareViaLink.md)
|
|
71
71
|
- [Sidebar](./docs/components/Sidebar.md)
|
|
72
|
+
- [StatusDropdown](./docs/components/StatusDropdown.md)
|
|
72
73
|
- [StickyRibbonsContainer](./docs/components/StickyRibbonsContainer.md)
|
|
73
74
|
- [SubHeader](./docs/components/SubHeader.md)
|
|
74
75
|
- [SuffixedInput](./docs/components/SuffixedInput.md)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import classnames from 'classnames';
|
|
2
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
3
|
+
import { useTranslation } from 'react-i18next';
|
|
4
|
+
import { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var MobilePreviewHeader = function MobilePreviewHeader(_ref) {
|
|
7
|
+
var _ref$className = _ref.className,
|
|
8
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
9
|
+
_ref$message = _ref.message,
|
|
10
|
+
message = _ref$message === void 0 ? "" : _ref$message;
|
|
11
|
+
var _useTranslation = useTranslation(),
|
|
12
|
+
t = _useTranslation.t;
|
|
13
|
+
return /*#__PURE__*/jsx("div", {
|
|
14
|
+
className: classnames(["neeto-ui-bg-gray-200 px-6 py-5", className]),
|
|
15
|
+
"data-cy": "mobile-preview-header",
|
|
16
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
17
|
+
lineHeight: "normal",
|
|
18
|
+
style: "body2",
|
|
19
|
+
children: message || t("neetoMolecules.mobilePreview.message")
|
|
20
|
+
})
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export { MobilePreviewHeader as default };
|
|
25
|
+
//# sourceMappingURL=MobilePreviewHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobilePreviewHeader.js","sources":["../src/components/MobilePreviewHeader/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\n// Had to disable this to populate content in description column.\n// eslint-disable-next-line @bigbinary/neeto/no-dumb-components-with-use-translation\nconst MobilePreviewHeader = ({ className = \"\", message = \"\" }) => {\n const { t } = useTranslation();\n\n return (\n <div\n className={classnames([\"neeto-ui-bg-gray-200 px-6 py-5\", className])}\n data-cy=\"mobile-preview-header\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\">\n {message || t(\"neetoMolecules.mobilePreview.message\")}\n </Typography>\n </div>\n );\n};\n\nMobilePreviewHeader.propTypes = {\n /**\n * To provide additional classes\n */\n className: PropTypes.string,\n /**\n * To provide custom message.\n */\n message: PropTypes.node,\n};\n\nexport default MobilePreviewHeader;\n"],"names":["MobilePreviewHeader","_ref","_ref$className","className","_ref$message","message","_useTranslation","useTranslation","t","_jsx","classnames","children","Typography","lineHeight","style"],"mappings":";;;;;AAOA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAAyC;AAAA,EAAA,IAAAC,cAAA,GAAAD,IAAA,CAAnCE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,YAAA,GAAAH,IAAA,CAAEI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,YAAA,CAAA;AACzD,EAAA,IAAAE,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,oBACEC,GAAA,CAAA,KAAA,EAAA;IACEN,SAAS,EAAEO,UAAU,CAAC,CAAC,gCAAgC,EAAEP,SAAS,CAAC,CAAE;AACrE,IAAA,SAAA,EAAQ,uBAAuB;IAAAQ,QAAA,eAE/BF,GAAA,CAACG,UAAU,EAAA;AAACC,MAAAA,UAAU,EAAC,QAAQ;AAACC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAC1CN,OAAO,IAAIG,CAAC,CAAC,sCAAsC,CAAA;KAC1C,CAAA;AAAC,GACV,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { _findBy } from '@bigbinary/neeto-cist';
|
|
3
|
+
import Dropdown from '@bigbinary/neetoui/Dropdown';
|
|
4
|
+
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
5
|
+
import { memo } from 'react';
|
|
6
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
7
|
+
import { n } from './inject-css-c86de496.js';
|
|
8
|
+
import Down from '@bigbinary/neeto-icons/Down';
|
|
9
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
10
|
+
|
|
11
|
+
var NeetoUIMenu = Dropdown.Menu,
|
|
12
|
+
MenuItem = Dropdown.MenuItem;
|
|
13
|
+
var Menu = function Menu(_ref) {
|
|
14
|
+
var onItemClick = _ref.onItemClick,
|
|
15
|
+
options = _ref.options,
|
|
16
|
+
_ref$shouldShowAllOpt = _ref.shouldShowAllOptions,
|
|
17
|
+
shouldShowAllOptions = _ref$shouldShowAllOpt === void 0 ? false : _ref$shouldShowAllOpt,
|
|
18
|
+
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
19
|
+
hiddenStatuses = _ref$hiddenStatuses === void 0 ? [] : _ref$hiddenStatuses;
|
|
20
|
+
var allowedOptions = shouldShowAllOptions ? options : options.filter(function (status) {
|
|
21
|
+
return !hiddenStatuses.includes(status.value);
|
|
22
|
+
});
|
|
23
|
+
return /*#__PURE__*/jsx(NeetoUIMenu, {
|
|
24
|
+
"data-testid": "status-dropdown-menu",
|
|
25
|
+
children: allowedOptions === null || allowedOptions === void 0 ? void 0 : allowedOptions.map(function (option) {
|
|
26
|
+
return /*#__PURE__*/jsx(MenuItem.Button, {
|
|
27
|
+
className: "status-dropdown-item--".concat(option.color),
|
|
28
|
+
"data-testid": "status-dropdown-item-".concat(option.value),
|
|
29
|
+
onClick: function onClick() {
|
|
30
|
+
return onItemClick(option);
|
|
31
|
+
},
|
|
32
|
+
children: option.label
|
|
33
|
+
}, option.value);
|
|
34
|
+
})
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
var Menu$1 = /*#__PURE__*/memo(Menu);
|
|
38
|
+
|
|
39
|
+
var css = ":root{--neeto-molecules-status-color-open:9,90,186;--neeto-molecules-status-color-done:189,100,13;--neeto-molecules-status-color-waiting:47,57,65;--neeto-molecules-status-color-red:187,18,26;--neeto-molecules-status-color-yellow:255,204,112;--neeto-molecules-status-color-violet:157,98,162;--neeto-molecules-status-color-pink:225,62,230;--neeto-molecules-status-color-teal:38,87,124;--neeto-molecules-status-color-cyan:66,160,157;--neeto-molecules-status-color-green:16,113,84;--neeto-molecules-status-bg-open:226,241,255;--neeto-molecules-status-bg-done:250,241,225;--neeto-molecules-status-bg-waiting:233,235,237;--neeto-molecules-status-bg-red:254,236,240;--neeto-molecules-status-bg-yellow:255,247,233;--neeto-molecules-status-bg-violet:235,222,255;--neeto-molecules-status-bg-pink:254,233,255;--neeto-molecules-status-bg-teal:228,244,255;--neeto-molecules-status-bg-cyan:224,255,254;--neeto-molecules-status-bg-green:224,244,238}.status-dropdown-target--open{background-color:#e2f1ff;background-color:rgb(var(--neeto-molecules-status-bg-open));color:#095aba;color:rgb(var(--neeto-molecules-status-color-open))}.status-dropdown-target--done{background-color:#faf1e1;background-color:rgb(var(--neeto-molecules-status-bg-done));color:#bd640d;color:rgb(var(--neeto-molecules-status-color-done))}.status-dropdown-target--waiting{background-color:#e9ebed;background-color:rgb(var(--neeto-molecules-status-bg-waiting));color:#2f3941;color:rgb(var(--neeto-molecules-status-color-waiting))}.status-dropdown-target--red{background-color:#feecf0;background-color:rgb(var(--neeto-molecules-status-bg-red));color:#bb121a;color:rgb(var(--neeto-molecules-status-color-red))}.status-dropdown-target--yellow{background-color:#fff7e9;background-color:rgb(var(--neeto-molecules-status-bg-yellow));color:#ffcc70;color:rgb(var(--neeto-molecules-status-color-yellow))}.status-dropdown-target--violet{background-color:#ebdeff;background-color:rgb(var(--neeto-molecules-status-bg-violet));color:#9d62a2;color:rgb(var(--neeto-molecules-status-color-violet))}.status-dropdown-target--pink{background-color:#fee9ff;background-color:rgb(var(--neeto-molecules-status-bg-pink));color:#e13ee6;color:rgb(var(--neeto-molecules-status-color-pink))}.status-dropdown-target--teal{background-color:#e4f4ff;background-color:rgb(var(--neeto-molecules-status-bg-teal));color:#26577c;color:rgb(var(--neeto-molecules-status-color-teal))}.status-dropdown-target--cyan{background-color:#e0fffe;background-color:rgb(var(--neeto-molecules-status-bg-cyan));color:#42a09d;color:rgb(var(--neeto-molecules-status-color-cyan))}.status-dropdown-target--green{background-color:#e0f4ee;background-color:rgb(var(--neeto-molecules-status-bg-green));color:#107154;color:rgb(var(--neeto-molecules-status-color-green))}.status-dropdown-item--open{color:#095aba!important;color:rgb(var(--neeto-molecules-status-color-open))!important}.status-dropdown-item--done{color:#bd640d!important;color:rgb(var(--neeto-molecules-status-color-done))!important}.status-dropdown-item--waiting{color:#2f3941!important;color:rgb(var(--neeto-molecules-status-color-waiting))!important}.status-dropdown-item--red{color:#bb121a!important;color:rgb(var(--neeto-molecules-status-color-red))!important}.status-dropdown-item--yellow{color:#ffcc70!important;color:rgb(var(--neeto-molecules-status-color-yellow))!important}.status-dropdown-item--violet{color:#9d62a2!important;color:rgb(var(--neeto-molecules-status-color-violet))!important}.status-dropdown-item--pink{color:#e13ee6!important;color:rgb(var(--neeto-molecules-status-color-pink))!important}.status-dropdown-item--teal{color:#26577c!important;color:rgb(var(--neeto-molecules-status-color-teal))!important}.status-dropdown-item--cyan{color:#42a09d!important;color:rgb(var(--neeto-molecules-status-color-cyan))!important}.status-dropdown-item--green{color:#107154!important;color:rgb(var(--neeto-molecules-status-color-green))!important}";
|
|
40
|
+
n(css,{});
|
|
41
|
+
|
|
42
|
+
var ICON_SIZE = 16;
|
|
43
|
+
|
|
44
|
+
var Target = function Target(_ref) {
|
|
45
|
+
var color = _ref.color,
|
|
46
|
+
label = _ref.label;
|
|
47
|
+
var targetClassName = "neeto-ui-rounded-sm inline-block cursor-pointer py-0.5 px-2 status-dropdown-target--".concat(color);
|
|
48
|
+
return /*#__PURE__*/jsxs("div", {
|
|
49
|
+
className: targetClassName,
|
|
50
|
+
"data-testid": "status-dropdown",
|
|
51
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
52
|
+
className: "inline",
|
|
53
|
+
style: "body2",
|
|
54
|
+
children: label
|
|
55
|
+
}), /*#__PURE__*/jsx(Down, {
|
|
56
|
+
className: "ml-2 inline",
|
|
57
|
+
size: ICON_SIZE
|
|
58
|
+
})]
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
var Target$1 = /*#__PURE__*/memo(Target);
|
|
62
|
+
|
|
63
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
64
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
65
|
+
var StatusDropdown = function StatusDropdown(_ref) {
|
|
66
|
+
var _ref$disabled = _ref.disabled,
|
|
67
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
68
|
+
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
69
|
+
hiddenStatuses = _ref$hiddenStatuses === void 0 ? [] : _ref$hiddenStatuses,
|
|
70
|
+
_ref$isLoading = _ref.isLoading,
|
|
71
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
72
|
+
onItemClick = _ref.onItemClick,
|
|
73
|
+
options = _ref.options,
|
|
74
|
+
selectedValue = _ref.selectedValue,
|
|
75
|
+
_ref$shouldShowAllOpt = _ref.shouldShowAllOptions,
|
|
76
|
+
shouldShowAllOptions = _ref$shouldShowAllOpt === void 0 ? false : _ref$shouldShowAllOpt;
|
|
77
|
+
var selectedOption = _findBy({
|
|
78
|
+
value: selectedValue
|
|
79
|
+
}, options);
|
|
80
|
+
return /*#__PURE__*/jsx(Dropdown, {
|
|
81
|
+
disabled: disabled,
|
|
82
|
+
customTarget: function customTarget() {
|
|
83
|
+
return /*#__PURE__*/jsx(Target$1, _objectSpread({
|
|
84
|
+
label: selectedValue
|
|
85
|
+
}, selectedOption));
|
|
86
|
+
},
|
|
87
|
+
strategy: "fixed",
|
|
88
|
+
children: isLoading ? /*#__PURE__*/jsx("div", {
|
|
89
|
+
className: "flex w-full items-center justify-center py-8",
|
|
90
|
+
children: /*#__PURE__*/jsx(Spinner, {})
|
|
91
|
+
}) : /*#__PURE__*/jsx(Menu$1, {
|
|
92
|
+
hiddenStatuses: hiddenStatuses,
|
|
93
|
+
onItemClick: onItemClick,
|
|
94
|
+
options: options,
|
|
95
|
+
shouldShowAllOptions: shouldShowAllOptions
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
StatusDropdown.Menu = Menu$1;
|
|
100
|
+
|
|
101
|
+
export { StatusDropdown as default };
|
|
102
|
+
//# sourceMappingURL=StatusDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusDropdown.js","sources":["../src/components/StatusDropdown/Menu.jsx","../src/components/StatusDropdown/constants.js","../src/components/StatusDropdown/Target.jsx","../src/components/StatusDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Dropdown } from \"neetoui\";\n\nconst { Menu: NeetoUIMenu, MenuItem } = Dropdown;\n\nconst Menu = ({\n onItemClick,\n options,\n shouldShowAllOptions = false,\n hiddenStatuses = [],\n}) => {\n const allowedOptions = shouldShowAllOptions\n ? options\n : options.filter(status => !hiddenStatuses.includes(status.value));\n\n return (\n <NeetoUIMenu data-testid=\"status-dropdown-menu\">\n {allowedOptions?.map(option => (\n <MenuItem.Button\n className={`status-dropdown-item--${option.color}`}\n data-testid={`status-dropdown-item-${option.value}`}\n key={option.value}\n onClick={() => onItemClick(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </NeetoUIMenu>\n );\n};\n\nexport default memo(Menu);\n","export const ICON_SIZE = 16;\n","import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nimport { ICON_SIZE } from \"./constants\";\n\nconst Target = ({ color, label }) => {\n const targetClassName = `neeto-ui-rounded-sm inline-block cursor-pointer py-0.5 px-2 status-dropdown-target--${color}`;\n\n return (\n <div className={targetClassName} data-testid=\"status-dropdown\">\n <Typography className=\"inline\" style=\"body2\">\n {label}\n </Typography>\n <Down className=\"ml-2 inline\" size={ICON_SIZE} />\n </div>\n );\n};\n\nexport default memo(Target);\n","import { _findBy } from \"neetocist\";\nimport { Dropdown, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Menu from \"./Menu\";\nimport \"./status-dropdown.scss\";\nimport Target from \"./Target\";\n\nconst StatusDropdown = ({\n disabled = false,\n hiddenStatuses = [],\n isLoading = false,\n onItemClick,\n options,\n selectedValue,\n shouldShowAllOptions = false,\n}) => {\n const selectedOption = _findBy({ value: selectedValue }, options);\n\n return (\n <Dropdown\n {...{ disabled }}\n customTarget={() => <Target label={selectedValue} {...selectedOption} />}\n strategy=\"fixed\"\n >\n {isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <Menu\n {...{ hiddenStatuses, onItemClick, options, shouldShowAllOptions }}\n />\n )}\n </Dropdown>\n );\n};\n\nStatusDropdown.Menu = Menu;\n\nStatusDropdown.propTypes = {\n /**\n * This prop will decide whether the dropdown is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * Statuses to be hidden when shouldShowAllOptions is false.\n */\n hiddenStatuses: PropTypes.array,\n /**\n * This prop will decide whether the dropdown is in loading state or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Function to be called when a menu item is clicked.\n */\n onItemClick: PropTypes.func,\n /**\n * The items that should be shown in the dropdown.\n */\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n })\n ),\n /**\n * The selected value.\n */\n selectedValue: PropTypes.string,\n /**\n * This prop will decide whether all options should be shown or not. If set to false, the items in hiddenStatuses will not be shown.\n */\n shouldShowAllOptions: PropTypes.bool,\n};\n\nexport default StatusDropdown;\n"],"names":["NeetoUIMenu","Dropdown","Menu","MenuItem","_ref","onItemClick","options","_ref$shouldShowAllOpt","shouldShowAllOptions","_ref$hiddenStatuses","hiddenStatuses","allowedOptions","filter","status","includes","value","_jsx","children","map","option","Button","className","concat","color","onClick","label","memo","ICON_SIZE","Target","targetClassName","_jsxs","Typography","style","Down","size","StatusDropdown","_ref$disabled","disabled","_ref$isLoading","isLoading","selectedValue","selectedOption","_findBy","customTarget","_objectSpread","strategy","Spinner"],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var classnames = require('classnames');
|
|
4
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
5
|
+
var reactI18next = require('react-i18next');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
9
|
+
|
|
10
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
11
|
+
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
12
|
+
|
|
13
|
+
var MobilePreviewHeader = function MobilePreviewHeader(_ref) {
|
|
14
|
+
var _ref$className = _ref.className,
|
|
15
|
+
className = _ref$className === void 0 ? "" : _ref$className,
|
|
16
|
+
_ref$message = _ref.message,
|
|
17
|
+
message = _ref$message === void 0 ? "" : _ref$message;
|
|
18
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
19
|
+
t = _useTranslation.t;
|
|
20
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
21
|
+
className: classnames__default["default"](["neeto-ui-bg-gray-200 px-6 py-5", className]),
|
|
22
|
+
"data-cy": "mobile-preview-header",
|
|
23
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
24
|
+
lineHeight: "normal",
|
|
25
|
+
style: "body2",
|
|
26
|
+
children: message || t("neetoMolecules.mobilePreview.message")
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
module.exports = MobilePreviewHeader;
|
|
32
|
+
//# sourceMappingURL=MobilePreviewHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MobilePreviewHeader.js","sources":["../../src/components/MobilePreviewHeader/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\n// Had to disable this to populate content in description column.\n// eslint-disable-next-line @bigbinary/neeto/no-dumb-components-with-use-translation\nconst MobilePreviewHeader = ({ className = \"\", message = \"\" }) => {\n const { t } = useTranslation();\n\n return (\n <div\n className={classnames([\"neeto-ui-bg-gray-200 px-6 py-5\", className])}\n data-cy=\"mobile-preview-header\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\">\n {message || t(\"neetoMolecules.mobilePreview.message\")}\n </Typography>\n </div>\n );\n};\n\nMobilePreviewHeader.propTypes = {\n /**\n * To provide additional classes\n */\n className: PropTypes.string,\n /**\n * To provide custom message.\n */\n message: PropTypes.node,\n};\n\nexport default MobilePreviewHeader;\n"],"names":["MobilePreviewHeader","_ref","_ref$className","className","_ref$message","message","_useTranslation","useTranslation","t","_jsx","classnames","children","Typography","lineHeight","style"],"mappings":";;;;;;;;;;;;AAOA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAAyC;AAAA,EAAA,IAAAC,cAAA,GAAAD,IAAA,CAAnCE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IAAAE,YAAA,GAAAH,IAAA,CAAEI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,YAAA,CAAA;AACzD,EAAA,IAAAE,eAAA,GAAcC,2BAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,oBACEC,cAAA,CAAA,KAAA,EAAA;IACEN,SAAS,EAAEO,8BAAU,CAAC,CAAC,gCAAgC,EAAEP,SAAS,CAAC,CAAE;AACrE,IAAA,SAAA,EAAQ,uBAAuB;IAAAQ,QAAA,eAE/BF,cAAA,CAACG,8BAAU,EAAA;AAACC,MAAAA,UAAU,EAAC,QAAQ;AAACC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAC1CN,OAAO,IAAIG,CAAC,CAAC,sCAAsC,CAAA;KAC1C,CAAA;AAAC,GACV,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
|
+
var Dropdown = require('@bigbinary/neetoui/Dropdown');
|
|
6
|
+
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var injectCss = require('./inject-css-80a5faa3.js');
|
|
10
|
+
var Down = require('@bigbinary/neeto-icons/Down');
|
|
11
|
+
var Typography = require('@bigbinary/neetoui/Typography');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
16
|
+
var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
|
|
17
|
+
var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
|
|
18
|
+
var Down__default = /*#__PURE__*/_interopDefaultLegacy(Down);
|
|
19
|
+
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
20
|
+
|
|
21
|
+
var NeetoUIMenu = Dropdown__default["default"].Menu,
|
|
22
|
+
MenuItem = Dropdown__default["default"].MenuItem;
|
|
23
|
+
var Menu = function Menu(_ref) {
|
|
24
|
+
var onItemClick = _ref.onItemClick,
|
|
25
|
+
options = _ref.options,
|
|
26
|
+
_ref$shouldShowAllOpt = _ref.shouldShowAllOptions,
|
|
27
|
+
shouldShowAllOptions = _ref$shouldShowAllOpt === void 0 ? false : _ref$shouldShowAllOpt,
|
|
28
|
+
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
29
|
+
hiddenStatuses = _ref$hiddenStatuses === void 0 ? [] : _ref$hiddenStatuses;
|
|
30
|
+
var allowedOptions = shouldShowAllOptions ? options : options.filter(function (status) {
|
|
31
|
+
return !hiddenStatuses.includes(status.value);
|
|
32
|
+
});
|
|
33
|
+
return /*#__PURE__*/jsxRuntime.jsx(NeetoUIMenu, {
|
|
34
|
+
"data-testid": "status-dropdown-menu",
|
|
35
|
+
children: allowedOptions === null || allowedOptions === void 0 ? void 0 : allowedOptions.map(function (option) {
|
|
36
|
+
return /*#__PURE__*/jsxRuntime.jsx(MenuItem.Button, {
|
|
37
|
+
className: "status-dropdown-item--".concat(option.color),
|
|
38
|
+
"data-testid": "status-dropdown-item-".concat(option.value),
|
|
39
|
+
onClick: function onClick() {
|
|
40
|
+
return onItemClick(option);
|
|
41
|
+
},
|
|
42
|
+
children: option.label
|
|
43
|
+
}, option.value);
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
var Menu$1 = /*#__PURE__*/React.memo(Menu);
|
|
48
|
+
|
|
49
|
+
var css = ":root{--neeto-molecules-status-color-open:9,90,186;--neeto-molecules-status-color-done:189,100,13;--neeto-molecules-status-color-waiting:47,57,65;--neeto-molecules-status-color-red:187,18,26;--neeto-molecules-status-color-yellow:255,204,112;--neeto-molecules-status-color-violet:157,98,162;--neeto-molecules-status-color-pink:225,62,230;--neeto-molecules-status-color-teal:38,87,124;--neeto-molecules-status-color-cyan:66,160,157;--neeto-molecules-status-color-green:16,113,84;--neeto-molecules-status-bg-open:226,241,255;--neeto-molecules-status-bg-done:250,241,225;--neeto-molecules-status-bg-waiting:233,235,237;--neeto-molecules-status-bg-red:254,236,240;--neeto-molecules-status-bg-yellow:255,247,233;--neeto-molecules-status-bg-violet:235,222,255;--neeto-molecules-status-bg-pink:254,233,255;--neeto-molecules-status-bg-teal:228,244,255;--neeto-molecules-status-bg-cyan:224,255,254;--neeto-molecules-status-bg-green:224,244,238}.status-dropdown-target--open{background-color:#e2f1ff;background-color:rgb(var(--neeto-molecules-status-bg-open));color:#095aba;color:rgb(var(--neeto-molecules-status-color-open))}.status-dropdown-target--done{background-color:#faf1e1;background-color:rgb(var(--neeto-molecules-status-bg-done));color:#bd640d;color:rgb(var(--neeto-molecules-status-color-done))}.status-dropdown-target--waiting{background-color:#e9ebed;background-color:rgb(var(--neeto-molecules-status-bg-waiting));color:#2f3941;color:rgb(var(--neeto-molecules-status-color-waiting))}.status-dropdown-target--red{background-color:#feecf0;background-color:rgb(var(--neeto-molecules-status-bg-red));color:#bb121a;color:rgb(var(--neeto-molecules-status-color-red))}.status-dropdown-target--yellow{background-color:#fff7e9;background-color:rgb(var(--neeto-molecules-status-bg-yellow));color:#ffcc70;color:rgb(var(--neeto-molecules-status-color-yellow))}.status-dropdown-target--violet{background-color:#ebdeff;background-color:rgb(var(--neeto-molecules-status-bg-violet));color:#9d62a2;color:rgb(var(--neeto-molecules-status-color-violet))}.status-dropdown-target--pink{background-color:#fee9ff;background-color:rgb(var(--neeto-molecules-status-bg-pink));color:#e13ee6;color:rgb(var(--neeto-molecules-status-color-pink))}.status-dropdown-target--teal{background-color:#e4f4ff;background-color:rgb(var(--neeto-molecules-status-bg-teal));color:#26577c;color:rgb(var(--neeto-molecules-status-color-teal))}.status-dropdown-target--cyan{background-color:#e0fffe;background-color:rgb(var(--neeto-molecules-status-bg-cyan));color:#42a09d;color:rgb(var(--neeto-molecules-status-color-cyan))}.status-dropdown-target--green{background-color:#e0f4ee;background-color:rgb(var(--neeto-molecules-status-bg-green));color:#107154;color:rgb(var(--neeto-molecules-status-color-green))}.status-dropdown-item--open{color:#095aba!important;color:rgb(var(--neeto-molecules-status-color-open))!important}.status-dropdown-item--done{color:#bd640d!important;color:rgb(var(--neeto-molecules-status-color-done))!important}.status-dropdown-item--waiting{color:#2f3941!important;color:rgb(var(--neeto-molecules-status-color-waiting))!important}.status-dropdown-item--red{color:#bb121a!important;color:rgb(var(--neeto-molecules-status-color-red))!important}.status-dropdown-item--yellow{color:#ffcc70!important;color:rgb(var(--neeto-molecules-status-color-yellow))!important}.status-dropdown-item--violet{color:#9d62a2!important;color:rgb(var(--neeto-molecules-status-color-violet))!important}.status-dropdown-item--pink{color:#e13ee6!important;color:rgb(var(--neeto-molecules-status-color-pink))!important}.status-dropdown-item--teal{color:#26577c!important;color:rgb(var(--neeto-molecules-status-color-teal))!important}.status-dropdown-item--cyan{color:#42a09d!important;color:rgb(var(--neeto-molecules-status-color-cyan))!important}.status-dropdown-item--green{color:#107154!important;color:rgb(var(--neeto-molecules-status-color-green))!important}";
|
|
50
|
+
injectCss.n(css,{});
|
|
51
|
+
|
|
52
|
+
var ICON_SIZE = 16;
|
|
53
|
+
|
|
54
|
+
var Target = function Target(_ref) {
|
|
55
|
+
var color = _ref.color,
|
|
56
|
+
label = _ref.label;
|
|
57
|
+
var targetClassName = "neeto-ui-rounded-sm inline-block cursor-pointer py-0.5 px-2 status-dropdown-target--".concat(color);
|
|
58
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
59
|
+
className: targetClassName,
|
|
60
|
+
"data-testid": "status-dropdown",
|
|
61
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
62
|
+
className: "inline",
|
|
63
|
+
style: "body2",
|
|
64
|
+
children: label
|
|
65
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Down__default["default"], {
|
|
66
|
+
className: "ml-2 inline",
|
|
67
|
+
size: ICON_SIZE
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
var Target$1 = /*#__PURE__*/React.memo(Target);
|
|
72
|
+
|
|
73
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
74
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
75
|
+
var StatusDropdown = function StatusDropdown(_ref) {
|
|
76
|
+
var _ref$disabled = _ref.disabled,
|
|
77
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
78
|
+
_ref$hiddenStatuses = _ref.hiddenStatuses,
|
|
79
|
+
hiddenStatuses = _ref$hiddenStatuses === void 0 ? [] : _ref$hiddenStatuses,
|
|
80
|
+
_ref$isLoading = _ref.isLoading,
|
|
81
|
+
isLoading = _ref$isLoading === void 0 ? false : _ref$isLoading,
|
|
82
|
+
onItemClick = _ref.onItemClick,
|
|
83
|
+
options = _ref.options,
|
|
84
|
+
selectedValue = _ref.selectedValue,
|
|
85
|
+
_ref$shouldShowAllOpt = _ref.shouldShowAllOptions,
|
|
86
|
+
shouldShowAllOptions = _ref$shouldShowAllOpt === void 0 ? false : _ref$shouldShowAllOpt;
|
|
87
|
+
var selectedOption = neetoCist._findBy({
|
|
88
|
+
value: selectedValue
|
|
89
|
+
}, options);
|
|
90
|
+
return /*#__PURE__*/jsxRuntime.jsx(Dropdown__default["default"], {
|
|
91
|
+
disabled: disabled,
|
|
92
|
+
customTarget: function customTarget() {
|
|
93
|
+
return /*#__PURE__*/jsxRuntime.jsx(Target$1, _objectSpread({
|
|
94
|
+
label: selectedValue
|
|
95
|
+
}, selectedOption));
|
|
96
|
+
},
|
|
97
|
+
strategy: "fixed",
|
|
98
|
+
children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
99
|
+
className: "flex w-full items-center justify-center py-8",
|
|
100
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Spinner__default["default"], {})
|
|
101
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(Menu$1, {
|
|
102
|
+
hiddenStatuses: hiddenStatuses,
|
|
103
|
+
onItemClick: onItemClick,
|
|
104
|
+
options: options,
|
|
105
|
+
shouldShowAllOptions: shouldShowAllOptions
|
|
106
|
+
})
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
StatusDropdown.Menu = Menu$1;
|
|
110
|
+
|
|
111
|
+
module.exports = StatusDropdown;
|
|
112
|
+
//# sourceMappingURL=StatusDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StatusDropdown.js","sources":["../../src/components/StatusDropdown/Menu.jsx","../../src/components/StatusDropdown/constants.js","../../src/components/StatusDropdown/Target.jsx","../../src/components/StatusDropdown/index.jsx"],"sourcesContent":["import { memo } from \"react\";\n\nimport { Dropdown } from \"neetoui\";\n\nconst { Menu: NeetoUIMenu, MenuItem } = Dropdown;\n\nconst Menu = ({\n onItemClick,\n options,\n shouldShowAllOptions = false,\n hiddenStatuses = [],\n}) => {\n const allowedOptions = shouldShowAllOptions\n ? options\n : options.filter(status => !hiddenStatuses.includes(status.value));\n\n return (\n <NeetoUIMenu data-testid=\"status-dropdown-menu\">\n {allowedOptions?.map(option => (\n <MenuItem.Button\n className={`status-dropdown-item--${option.color}`}\n data-testid={`status-dropdown-item-${option.value}`}\n key={option.value}\n onClick={() => onItemClick(option)}\n >\n {option.label}\n </MenuItem.Button>\n ))}\n </NeetoUIMenu>\n );\n};\n\nexport default memo(Menu);\n","export const ICON_SIZE = 16;\n","import { memo } from \"react\";\n\nimport { Down } from \"neetoicons\";\nimport { Typography } from \"neetoui\";\n\nimport { ICON_SIZE } from \"./constants\";\n\nconst Target = ({ color, label }) => {\n const targetClassName = `neeto-ui-rounded-sm inline-block cursor-pointer py-0.5 px-2 status-dropdown-target--${color}`;\n\n return (\n <div className={targetClassName} data-testid=\"status-dropdown\">\n <Typography className=\"inline\" style=\"body2\">\n {label}\n </Typography>\n <Down className=\"ml-2 inline\" size={ICON_SIZE} />\n </div>\n );\n};\n\nexport default memo(Target);\n","import { _findBy } from \"neetocist\";\nimport { Dropdown, Spinner } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nimport Menu from \"./Menu\";\nimport \"./status-dropdown.scss\";\nimport Target from \"./Target\";\n\nconst StatusDropdown = ({\n disabled = false,\n hiddenStatuses = [],\n isLoading = false,\n onItemClick,\n options,\n selectedValue,\n shouldShowAllOptions = false,\n}) => {\n const selectedOption = _findBy({ value: selectedValue }, options);\n\n return (\n <Dropdown\n {...{ disabled }}\n customTarget={() => <Target label={selectedValue} {...selectedOption} />}\n strategy=\"fixed\"\n >\n {isLoading ? (\n <div className=\"flex w-full items-center justify-center py-8\">\n <Spinner />\n </div>\n ) : (\n <Menu\n {...{ hiddenStatuses, onItemClick, options, shouldShowAllOptions }}\n />\n )}\n </Dropdown>\n );\n};\n\nStatusDropdown.Menu = Menu;\n\nStatusDropdown.propTypes = {\n /**\n * This prop will decide whether the dropdown is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * Statuses to be hidden when shouldShowAllOptions is false.\n */\n hiddenStatuses: PropTypes.array,\n /**\n * This prop will decide whether the dropdown is in loading state or not.\n */\n isLoading: PropTypes.bool,\n /**\n * Function to be called when a menu item is clicked.\n */\n onItemClick: PropTypes.func,\n /**\n * The items that should be shown in the dropdown.\n */\n options: PropTypes.arrayOf(\n PropTypes.shape({\n label: PropTypes.string,\n value: PropTypes.string,\n color: PropTypes.string,\n })\n ),\n /**\n * The selected value.\n */\n selectedValue: PropTypes.string,\n /**\n * This prop will decide whether all options should be shown or not. If set to false, the items in hiddenStatuses will not be shown.\n */\n shouldShowAllOptions: PropTypes.bool,\n};\n\nexport default StatusDropdown;\n"],"names":["NeetoUIMenu","Dropdown","Menu","MenuItem","_ref","onItemClick","options","_ref$shouldShowAllOpt","shouldShowAllOptions","_ref$hiddenStatuses","hiddenStatuses","allowedOptions","filter","status","includes","value","_jsx","children","map","option","Button","className","concat","color","onClick","label","memo","ICON_SIZE","Target","targetClassName","_jsxs","Typography","style","Down","size","StatusDropdown","_ref$disabled","disabled","_ref$isLoading","isLoading","selectedValue","selectedOption","_findBy","customTarget","_objectSpread","strategy","Spinner"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.20",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
package/src/translations/en.json
CHANGED
|
@@ -738,6 +738,9 @@
|
|
|
738
738
|
},
|
|
739
739
|
"deviceIncompatibility": {
|
|
740
740
|
"description": "The design tab is currently not supported in this screen size. Please switch to a screen larger than 768px wide."
|
|
741
|
+
},
|
|
742
|
+
"mobilePreview": {
|
|
743
|
+
"message": "The following section is a preview based on the changes you have made above."
|
|
741
744
|
}
|
|
742
745
|
}
|
|
743
746
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* Can be used to show preview message for smaller viewports.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
*
|
|
8
|
+
* import MobilePreviewHeader from "@bigbinary/neeto-molecules/MobilePreviewHeader";
|
|
9
|
+
*
|
|
10
|
+
* const App = () => <MobilePreviewHeader />;
|
|
11
|
+
* @endexample
|
|
12
|
+
*/
|
|
13
|
+
const MobilePreviewHeader: React.FC<{
|
|
14
|
+
message?: React.ReactNode;
|
|
15
|
+
className?: string;
|
|
16
|
+
}>;
|
|
17
|
+
export default MobilePreviewHeader;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* The StatusDropdown component is used in neeto products for showing a dropdown
|
|
5
|
+
*
|
|
6
|
+
* to select the status of an item.
|
|
7
|
+
*
|
|
8
|
+
* 
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* import StatusDropdown from "@bigbinary/neeto-molecules/Sidebar";
|
|
13
|
+
*
|
|
14
|
+
* const App = () => {
|
|
15
|
+
* const [selectedStatus, setSelectedStatus] = React.useState("All");
|
|
16
|
+
*
|
|
17
|
+
* const options = [
|
|
18
|
+
* { label: "All", value: "All", color: "red" },
|
|
19
|
+
* { label: "Open", value: "Open", color: "green" },
|
|
20
|
+
* { label: "In Progress", value: "In Progress", color: "yellow" },
|
|
21
|
+
* ];
|
|
22
|
+
*
|
|
23
|
+
* return (
|
|
24
|
+
* <div>
|
|
25
|
+
* <StatusDropdown
|
|
26
|
+
* shouldShowAllOptions
|
|
27
|
+
* options={options}
|
|
28
|
+
* selectedValue={selectedValue}
|
|
29
|
+
* onItemClick={({ value }) => setSelectedStatus(value)}
|
|
30
|
+
* />
|
|
31
|
+
* </div>
|
|
32
|
+
* );
|
|
33
|
+
* };
|
|
34
|
+
* @endexample
|
|
35
|
+
* @example
|
|
36
|
+
*
|
|
37
|
+
* import StatusDropdown from "@bigbinary/neeto-molecules/Sidebar";
|
|
38
|
+
*
|
|
39
|
+
* const App = () => {
|
|
40
|
+
* const [selectedStatus, setSelectedStatus] = React.useState("All");
|
|
41
|
+
*
|
|
42
|
+
* const options = [
|
|
43
|
+
* { label: "All", value: "All", color: "red" },
|
|
44
|
+
* { label: "Open", value: "Open", color: "green" },
|
|
45
|
+
* { label: "In Progress", value: "In Progress", color: "yellow" },
|
|
46
|
+
* ];
|
|
47
|
+
*
|
|
48
|
+
* const hiddenStatuses = ["Open"];
|
|
49
|
+
*
|
|
50
|
+
* return (
|
|
51
|
+
* <div>
|
|
52
|
+
* <StatusDropdown
|
|
53
|
+
* hiddenStatuses={hiddenStatuses}
|
|
54
|
+
* options={options}
|
|
55
|
+
* selectedValue={selectedValue}
|
|
56
|
+
* onItemClick={({ value }) => setSelectedStatus(value)}
|
|
57
|
+
* />
|
|
58
|
+
* </div>
|
|
59
|
+
* );
|
|
60
|
+
* };
|
|
61
|
+
* @endexample
|
|
62
|
+
*/
|
|
63
|
+
const StatusDropdown: React.FC<{
|
|
64
|
+
disabled?: boolean;
|
|
65
|
+
hiddenStatuses?: Array<string>;
|
|
66
|
+
isLoading?: boolean;
|
|
67
|
+
onItemClick: (status: object) => void;
|
|
68
|
+
options: Array<object>;
|
|
69
|
+
selectedValue: string;
|
|
70
|
+
shouldShowAllOptions?: boolean;
|
|
71
|
+
}>;
|
|
72
|
+
export default StatusDropdown;
|