tweak-tools
Version:
Tweak your React projects until awesomeness
31 lines (30 loc) • 1.43 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ButtonGroup = void 0;
const react_1 = __importDefault(require("react"));
const UI_1 = require("../UI");
const StyledButtonGroup_1 = require("./StyledButtonGroup");
const StyledButtonGroupButton_1 = require("./StyledButtonGroupButton");
const __1 = require("../..");
const getOpts = ({ label: _label, opts: _opts }) => {
let label = typeof _label === 'string' ? (_label.trim() === '' ? null : _label) : _label;
let opts = _opts;
if (typeof _opts.opts === 'object') {
if (opts.label !== undefined) {
label = _opts.label;
}
opts = _opts.opts;
}
return { label, opts: opts };
};
function ButtonGroup(props) {
const { label, opts } = getOpts(props);
const store = (0, __1.useStoreContext)();
return (react_1.default.createElement(UI_1.Row, { input: !!label },
label && react_1.default.createElement(UI_1.Label, null, label),
react_1.default.createElement(StyledButtonGroup_1.StyledButtonGroup, null, Object.entries(opts).map(([label, onClick]) => (react_1.default.createElement(StyledButtonGroupButton_1.StyledButtonGroupButton, { key: label, onClick: () => onClick(store.get) }, label))))));
}
exports.ButtonGroup = ButtonGroup;