antd-multi-cascader
Version:
A multiple cascader component for antd
59 lines (58 loc) • 2.15 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const react_1 = (0, tslib_1.__importStar)(require("react"));
const react_2 = require("@storybook/react");
const index_1 = (0, tslib_1.__importDefault)(require("../index"));
(0, react_2.storiesOf)('MultiCascader', index_1.default).add('Async Data', () => {
const [state, setState] = (0, react_1.useState)(['Node1-1-1']);
const [options, setOptions] = (0, react_1.useState)([
{
value: 'Node1',
title: 'Node1-title',
isLeaf: false,
},
{
value: 'Node2',
title: 'Node2-title',
},
]);
const handleCascaderChange = react_1.default.useCallback((node, { add }) => {
if (node.value === 'Node1' && !node.children) {
setTimeout(() => {
setOptions(add([
{
value: 'Node1-1',
title: 'Node1-1-title',
isLeaf: false,
},
{
value: 'Node1-2',
title: 'Node1-2-title',
},
]));
}, 500);
}
else if (node.value === 'Node1-1' && !node.children) {
setTimeout(() => {
setOptions(add([
{
value: 'Node1-1-1',
title: 'Node1-1-1-title',
},
{
value: 'Node1-2-1',
title: 'Node1-2-1-title',
},
]));
}, 500);
}
}, []);
function renderTitle(value) {
if (value === 'Node1-1-1') {
return 'Node1-1-1-title';
}
return undefined;
}
return (react_1.default.createElement(index_1.default, { selectAll: true, selectLeafOnly: true, data: options, value: state, onChange: setState, placeholder: "Async Data", style: { width: '200px' }, onCascaderChange: handleCascaderChange, renderTitle: renderTitle }));
});