@nodeject/ui-components
Version:
UI library for non-trivial components
23 lines (22 loc) • 1.35 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
import * as React from 'react';
import { useToggle } from '../hooks';
export var ToggleComponents = function (props) {
var OtherComponent = props.OtherComponent, InitialComponent = props.InitialComponent, initialComponentProps = props.initialComponentProps, otherComponentProps = props.otherComponentProps;
var initialToggleComponent = props.initialState !== undefined ? props.initialState : 'initial';
var defaultToggle = useToggle({
initialState: initialToggleComponent !== 'initial'
});
var _a = (props === null || props === void 0 ? void 0 : props.toggle) || defaultToggle, active = _a.active, toggle = _a.toggle, toggleOn = _a.toggleOn, toggleOff = _a.toggleOff;
return active ? (React.createElement(OtherComponent, __assign({ toggle: toggle, toggleOff: toggleOff }, otherComponentProps))) : (React.createElement(InitialComponent, __assign({ toggle: toggle, toggleOn: toggleOn }, initialComponentProps)));
};