@arche-mc2/arche-controls
Version:
We know that there are a ton of react UI library projects to choose from. Our hope with this one is to provide the next generation of react components that you can use to bootstrap your next project, or as a reference for building a UIKit. Read on to get
198 lines • 8.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = require("react");
var UpCheckBox_1 = require("./UpCheckBox");
var Label_1 = require("../../Display/Label");
var stories_1 = require("../../../Common/stories");
var addon_knobs_1 = require("@storybook/addon-knobs");
var theming_1 = require("../../../Common/theming");
var UpButton_1 = require("../Button/UpButton");
var Input_1 = require("../Input");
var Box_1 = require("../../Containers/Box");
var useSafeState_1 = require("../../../Common/hooks/useSafeState");
exports.default = {
title: 'Components/Inputs/UpCheckbox',
decorators: [addon_knobs_1.withKnobs, stories_1.getRootContainer('UpCheckbox')],
component: UpCheckBox_1.UpCheckbox
};
var randomName = function (n) {
if (n === void 0) { n = 12; }
var alphabet = "azertyuiopmlkjhgfdsqwxcvbn";
var randomInt = function (max) { return Math.floor(Math.random() * Math.floor(max)); };
var out = "";
while (n > 0) {
out = out + alphabet.charAt(randomInt(alphabet.length));
n--;
}
var name = out[0].toUpperCase() + out.slice(1);
return name;
};
;
exports.General = function (props) {
var _a = React.useState(null), selectedValue = _a[0], setValue = _a[1];
var onChange = function (event, value) {
setValue(value);
};
return (React.createElement(Label_1.default, { textAlign: props.textAlign, inline: props.inline, width: "medium", text: props.label },
React.createElement(UpCheckBox_1.default, { className: props.className, options: [
{
text: props.text,
name: "Option1",
onOptionChange: onChange,
value: true,
checked: selectedValue === true
}
] })));
};
exports.General.args = {
label: 'Activation de ... :',
text: '',
inline: true,
textAlign: 'left',
className: 'one-checkbox'
};
exports.MultipleCheckboxes = function () {
var _a = React.useState(null), selectedOption1 = _a[0], setOption1Value = _a[1];
var _b = React.useState(null), selectedOption2 = _b[0], setOption2Value = _b[1];
var _c = React.useState(null), selectedOption3 = _c[0], setOption3Value = _c[1];
var onChangeOption1 = function (event, value) {
setOption1Value(value);
};
var onChangeOption2 = function (event, value) {
setOption2Value(value);
};
var onChangeOption3 = function (event, value) {
setOption3Value(value);
};
return (React.createElement(Label_1.default, { inline: true, width: "small", text: "Choix :" },
React.createElement(UpCheckBox_1.default, { options: [
{
text: "Vous êtes majeur ?",
name: "Option1",
onOptionChange: onChangeOption1,
value: true,
checked: selectedOption1 === true
},
{
text: "Vous êtes Homme ?",
name: "Option2",
onOptionChange: onChangeOption2,
value: true,
checked: selectedOption2 === true
},
{
text: "Vous êtes grand ?",
name: "Option3",
onOptionChange: onChangeOption3,
value: true,
checked: selectedOption3 === true
}
] })));
};
exports.MultipleCheckboxesWithSomeDisabled = function () {
var _a = React.useState(null), selectedOption1 = _a[0], setOption1Value = _a[1];
var _b = React.useState(null), selectedOption2 = _b[0], setOption2Value = _b[1];
var _c = React.useState(null), selectedOption3 = _c[0], setOption3Value = _c[1];
var onChangeOption1 = function (event, value) {
setOption1Value(value);
};
var onChangeOption2 = function (event, value) {
setOption2Value(value);
};
var onChangeOption3 = function (event, value) {
setOption3Value(value);
};
return (React.createElement(Label_1.default, { inline: true, width: "small", text: "Choix :" },
React.createElement(UpCheckBox_1.default, { options: [
{
text: "Vous êtes majeur ?",
name: "Option1",
onOptionChange: onChangeOption1,
value: true,
checked: selectedOption1 === true
},
{
text: "Vous êtes Homme ?",
name: "Option2",
onOptionChange: onChangeOption2,
value: true,
checked: selectedOption2 === true,
disabled: true
},
{
text: "Vous êtes grand ?",
name: "Option3",
onOptionChange: onChangeOption3,
value: true,
checked: selectedOption3 === true
}
] })));
};
exports.DynamicCheckBoxesOptions = function () {
var name = randomName();
var _a = useSafeState_1.default(''), currentName = _a[0], setCurrentName = _a[1];
var _b = useSafeState_1.default([{
name: name,
value: name,
text: name,
onOptionChange: function (event, checked) { return handleToggle(name, checked); },
checked: false
}]), options = _b[0], setOptions = _b[1];
var handleToggle = function (cbName, checked) {
console.group("handleToggle");
console.log("name", cbName);
console.log("checked", checked);
console.groupEnd();
setOptions(function (prevOptions) { return prevOptions.map(function (option) {
if (option.name !== cbName) {
return option;
}
return tslib_1.__assign(tslib_1.__assign({}, option), { checked: checked });
}); });
};
var handleClick = function (e) {
var newName = currentName || randomName();
console.group("handleClick");
console.log("Add option", newName);
console.groupEnd();
setOptions(function (prevOptions) { return tslib_1.__spreadArrays(prevOptions, [{
name: newName,
value: newName,
text: newName,
onOptionChange: function (event, checked) { return handleToggle(newName, checked); },
checked: false
}]); });
};
return (React.createElement(React.Fragment, null,
React.createElement(Box_1.default, { style: { marginBottom: "20px" } },
React.createElement(UpButton_1.default, { actionType: 'plus', intent: 'primary', onClick: function (e) { return handleClick(e); } }, "Ajouter un checkbox"),
React.createElement(Box_1.default, { style: { width: "200px" } },
React.createElement(Input_1.default, { hasClearOption: true, onClear: function () { return setCurrentName(''); }, value: currentName, onChange: function (e) { return setCurrentName(e.target.value); } }))),
React.createElement(Box_1.default, null,
React.createElement(Label_1.default, { inline: true, width: "small", text: "Choix :" },
React.createElement(UpCheckBox_1.default, { options: options })))));
};
exports.DynamicCheckBoxesOptions.decorators = [function (DynamicCheckBoxesOptions) { return (React.createElement(theming_1.UpThemeProvider, { theme: theming_1.default },
React.createElement(Box_1.default, { style: { marginTop: "10px" } },
React.createElement(DynamicCheckBoxesOptions, null)))); }];
exports.ReadOnlyCheckBox = function () { return (React.createElement(React.Fragment, null,
React.createElement(UpCheckBox_1.default, { options: [
{
text: "",
name: "Option1",
value: true,
checked: true,
readonly: true
}
] }),
React.createElement(UpCheckBox_1.default, { options: [
{
text: "",
name: "Option2",
value: true,
checked: false,
readonly: true
}
] }))); };
//# sourceMappingURL=index.stories.js.map