UNPKG

react95-native

Version:

Refreshed Windows 95 style UI components for your React Native app

75 lines (72 loc) 2.11 kB
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } // ORIGINAL WINDOWS NAME: GROUPBOX import React from 'react'; import { StyleSheet, View } from 'react-native'; import { withTheme } from '../../core/theming'; import { Border } from '../../styles/styleElements'; import { Text } from '../..'; export const testId = 'fieldset'; const Fieldset = ({ children, disabled, label, labelStyle = {}, style = {}, theme, variant = 'default', ...rest }) => { return /*#__PURE__*/React.createElement(View, _extends({ style: [styles.wrapper, style], testID: testId }, rest), variant === 'flat' ? /*#__PURE__*/React.createElement(Border, { variant: "flat", theme: theme }) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, { style: [styles.border, { borderWidth: 4, borderColor: theme.borderLightest }] }), /*#__PURE__*/React.createElement(View, { style: [styles.border, { marginRight: 2, marginBottom: 2, borderWidth: 2, borderColor: theme.borderDark }] })), label && /*#__PURE__*/React.createElement(Text, { theme: theme, disabled: disabled, style: [styles.label, { backgroundColor: variant === 'flat' ? theme.canvas : theme.material }, labelStyle] }, label), children); }; const styles = StyleSheet.create({ wrapper: { position: 'relative', marginVertical: 12, padding: 20 }, label: { position: 'absolute', top: 0, left: 8, // TODO: how to properly center the label? transform: [{ translateY: -8 }], paddingHorizontal: 8, fontSize: 16, lineHeight: 16 }, border: { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 } }); export default withTheme(Fieldset); //# sourceMappingURL=Fieldset.js.map