@mikezimm/fps-library-v2
Version:
Library of reusable typescript/javascript functions, interfaces and constants
31 lines • 1.75 kB
JavaScript
import * as React from 'react';
import { Toggle } from '@fluentui/react/lib/Toggle';
import { Stack } from '@fluentui/react/lib/Stack';
export function makeToggles(makeTheseToggles) {
if (makeTheseToggles.toggles.length === 0) {
return null;
}
else {
let defStyles = makeTheseToggles.rootStyle ? { root: makeTheseToggles.rootStyle } :
{ root: { width: 160, } };
let toggleResult = makeTheseToggles.toggles.map(toggle => {
// Basically, if you leave it as '', you will get the default: either 'On' or 'Off'
// If you pass in '-', it will be blank
// Else it will be the value
let onText = toggle.onText != '' ? toggle.onText != '-' ? toggle.onText : '' : 'On'; // eslint-disable-line eqeqeq
let offText = toggle.offText != '' ? toggle.offText != '-' ? toggle.offText : '' : 'Off'; // eslint-disable-line eqeqeq
let thisToggle = React.createElement(Toggle, { label: toggle.label ? toggle.label : '', onText: onText, offText: offText, onChange: toggle._onChange, checked: toggle.checked, styles: toggle.styles ? toggle.styles : defStyles });
return thisToggle;
});
if (toggleResult.length === 1) {
return toggleResult[0];
}
else {
const stackButtonTokensBody = { childrenGap: makeTheseToggles.childGap };
return React.createElement(Stack, { padding: 0, horizontal: !makeTheseToggles.vertical, horizontalAlign: makeTheseToggles.hAlign, verticalAlign: makeTheseToggles.vAlign, tokens: stackButtonTokensBody },
" ",
toggleResult);
}
}
}
//# sourceMappingURL=toggleFieldBuilder.js.map