digicard-react-native-number-please
Version:
React Native number picker
76 lines • 10.5 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const React = __importStar(require("react"));
const react_native_1 = require("react-native");
const array_utils_1 = require("./utils/array.utils");
const range_1 = __importDefault(require("./utils/range"));
const picker_1 = require("@react-native-picker/picker");
const PickerFactory = React.forwardRef(({ pickerProps, selectedValue, onChange, style, itemStyle, disabled, }, ref) => {
const { id, label = '', min, max } = pickerProps;
const numbers = (0, range_1.default)(min, max);
return (<picker_1.Picker ref={ref} style={{ ...styles.picker, ...style }} selectedValue={selectedValue} onValueChange={(value) => onChange({ [id]: value })} itemStyle={itemStyle} enabled={!disabled}>
{numbers.map((number, index) => (<picker_1.Picker.Item key={`${id}-${number}-${index}`} value={number} label={`${number} ${label}`} enabled={!disabled}/>))}
</picker_1.Picker>);
});
const NumberPlease = ({ pickers, values, onChange, itemStyle, style, ...rest }) => {
console.log(pickers);
React.useEffect(() => {
Object.keys(values).some((key) => {
if (!(0, array_utils_1.find)(pickers, (picker) => picker.id === key)) {
throw new Error(`Picker with id '${key}' not found. Double check your initialValues.`);
}
});
}, [values, pickers]);
const onChangeHandle = (value) => {
onChange({
...values,
...value,
});
};
const findPickerValue = (picker) => {
return values[picker.id];
};
return (<react_native_1.View style={styles.container}>
{pickers.map((picker, index) => {
const { id, ref, disabled = false } = picker;
const pickerValue = findPickerValue(picker);
return (<PickerFactory ref={ref} key={`${id}-picker-${index}`} pickerProps={picker} selectedValue={pickerValue} onChange={onChangeHandle} disabled={disabled} itemStyle={itemStyle} style={style} {...rest}/>);
})}
</react_native_1.View>);
};
const styles = react_native_1.StyleSheet.create({
container: {
flexDirection: 'row',
width: '100%',
justifyContent: 'center',
alignItems: 'center',
},
picker: {
height: '100%',
flex: 1,
},
});
exports.default = NumberPlease;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyUGxlYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL051bWJlclBsZWFzZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQStCO0FBQy9CLCtDQUFnRDtBQUNoRCxxREFBMEM7QUFFMUMsMERBQWtDO0FBQ2xDLHdEQUFxRDtBQUVyRCxNQUFNLGFBQWEsR0FBa0IsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQ3JELFdBQVcsRUFDWCxhQUFhLEVBQ2IsUUFBUSxFQUNSLEtBQUssRUFDTCxTQUFTLEVBQ1QsUUFBUSxHQUNKLEVBQUUsR0FBTyxFQUFFLEVBQUU7SUFDakIsTUFBTSxFQUFFLEVBQUUsRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxXQUFXLENBQUM7SUFDakQsTUFBTSxPQUFPLEdBQUcsSUFBQSxlQUFLLEVBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLE9BQU8sQ0FDTCxDQUFDLGVBQU0sQ0FDUCxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDVCxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQ3RDLGFBQWEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUM3QixhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3pELFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNyQixPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUVqQjtNQUFBLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQzlCLENBQUMsZUFBTSxDQUFDLElB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S0FDUjtDQUNGLENBQUMsQ0FBQztBQUVILGtCQUFlLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFZpZXcsIFN0eWxlU2hlZXQgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuaW1wb3J0IHsgZmluZH0gZnJvbSAnLi91dGlscy9hcnJheS51dGlscyc7XG5pbXBvcnQgeyBJTnVtYmVyUGxlYXNlUHJvcHMsIElWYWx1ZSB9IGZyb20gJy4vTnVtYmVyUGxlYXNlLmludGVyZmFjZSc7XG5pbXBvcnQgcmFuZ2UgZnJvbSAnLi91dGlscy9yYW5nZSc7XG5pbXBvcnQgeyBQaWNrZXIgfSBmcm9tICdAcmVhY3QtbmF0aXZlLXBpY2tlci9waWNrZXInO1xuXG5jb25zdCBQaWNrZXJGYWN0b3J5OiBSZWFjdC5GQzxhbnk+ID0gUmVhY3QuZm9yd2FyZFJlZigoe1xuICBwaWNrZXJQcm9wcyxcbiAgc2VsZWN0ZWRWYWx1ZSxcbiAgb25DaGFuZ2UsXG4gIHN0eWxlLFxuICBpdGVtU3R5bGUsXG4gIGRpc2FibGVkLFxufTogYW55LCByZWY6YW55KSA9PiB7XG4gIGNvbnN0IHsgaWQsIGxhYmVsID0gJycsIG1pbiwgbWF4IH0gPSBwaWNrZXJQcm9wcztcbiAgY29uc3QgbnVtYmVycyA9IHJhbmdlKG1pbiwgbWF4KTtcblxuICByZXR1cm4gKFxuICAgIDxQaWNrZXJcbiAgICByZWY9e3JlZn1cbiAgICBzdHlsZT17eyAuLi5zdHlsZXMucGlja2VyLCAuLi5zdHlsZSB9fVxuICAgIHNlbGVjdGVkVmFsdWU9e3NlbGVjdGVkVmFsdWV9XG4gICAgb25WYWx1ZUNoYW5nZT17KHZhbHVlOiBhbnkpID0+IG9uQ2hhbmdlKHsgW2lkXTogdmFsdWUgfSl9XG4gICAgaXRlbVN0eWxlPXtpdGVtU3R5bGV9XG4gICAgZW5hYmxlZD17IWRpc2FibGVkfVxuICAgID5cbiAgICAgIHtudW1iZXJzLm1hcCgobnVtYmVyLCBpbmRleCkgPT4gKFxuICAgICAgICA8UGlja2VyLkl0ZW1cbiAgICAgICAga2V5PXtgJHtpZH0tJHtudW1iZXJ9LSR7aW5kZXh9YH1cbiAgICAgICAgdmFsdWU9e251bWJlcn1cbiAgICAgICAgbGFiZWw9e2Ake251bWJlcn0gJHtsYWJlbH1gfVxuICAgICAgICBlbmFibGVkPXshZGlzYWJsZWR9XG5cbiAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgPC9QaWNrZXI+XG4gICk7XG59KTtcblxuY29uc3QgTnVtYmVyUGxlYXNlOiBSZWFjdC5GQzxJTnVtYmVyUGxlYXNlUHJvcHM+ID0gKHtcbiAgcGlja2VycyxcbiAgdmFsdWVzLFxuICBvbkNoYW5nZSxcbiAgaXRlbVN0eWxlLFxuICBzdHlsZSxcbiAgLi4ucmVzdFxufTogYW55KSA9PiB7XG5cbiAgY29uc29sZS5sb2cocGlja2Vycyk7XG5cblxuICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgIE9iamVjdC5rZXlzKHZhbHVlcykuc29tZSgoa2V5KSA9PiB7XG4gICAgICBpZiAoIWZpbmQocGlja2VycywgKHBpY2tlcikgPT4gcGlja2VyLmlkID09PSBrZXkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGlja2VyIHdpdGggaWQgJyR7a2V5fScgbm90IGZvdW5kLiBEb3VibGUgY2hlY2sgeW91ciBpbml0aWFsVmFsdWVzLmAsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSwgW3ZhbHVlcywgcGlja2Vyc10pO1xuXG4gIGNvbnN0IG9uQ2hhbmdlSGFuZGxlID0gKHZhbHVlOiBJVmFsdWUpID0+IHtcbiAgICBvbkNoYW5nZSh7XG4gICAgICAuLi52YWx1ZXMsXG4gICAgICAuLi52YWx1ZSxcbiAgICB9KTtcbiAgfTtcblxuXG4gIGNvbnN0IGZpbmRQaWNrZXJWYWx1ZSA9IChwaWNrZXI6YW55KSA9PiB7XG4gICAgcmV0dXJuIHZhbHVlc1twaWNrZXIuaWRdO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFZpZXcgc3R5bGU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAge3BpY2tlcnMubWFwKChwaWNrZXI6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB7aWQsIHJlZiwgZGlzYWJsZWQgPSBmYWxzZSB9ID0gcGlja2VyO1xuICAgICAgICBjb25zdCBwaWNrZXJWYWx1ZSA9IGZpbmRQaWNrZXJWYWx1ZShwaWNrZXIpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxQaWNrZXJGYWN0b3J5XG4gICAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICAgIGtleT17YCR7aWR9LXBpY2tlci0ke2luZGV4fWB9XG4gICAgICAgICAgICBwaWNrZXJQcm9wcz17cGlja2VyfVxuICAgICAgICAgICAgc2VsZWN0ZWRWYWx1ZT17cGlja2VyVmFsdWV9XG4gICAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VIYW5kbGV9XG4gICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICBpdGVtU3R5bGU9e2l0ZW1TdHlsZX1cbiAgICAgICAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgICAgICAgIHsuLi5yZXN0fVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L1ZpZXc+XG4gICk7XG59O1xuXG5jb25zdCBzdHlsZXMgPSBTdHlsZVNoZWV0LmNyZWF0ZSh7XG4gIGNvbnRhaW5lcjoge1xuICAgIGZsZXhEaXJlY3Rpb246ICdyb3cnLFxuICAgIHdpZHRoOiAnMTAwJScsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9LFxuICBwaWNrZXI6IHtcbiAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICBmbGV4OiAxLFxuICB9LFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IE51bWJlclBsZWFzZTtcbiJdfQ==