UNPKG

react-native-number-please

Version:
53 lines 8.02 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = 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 lodash_find_1 = __importDefault(require("lodash.find")); const lodash_findindex_1 = __importDefault(require("lodash.findindex")); const immer_1 = __importDefault(require("immer")); const range_1 = __importDefault(require("./utils/range")); const PickerFactory = ({ pickerProps, selectedValue, onChange, pickerStyle, itemStyle, }) => { const { id, label = '', min, max } = pickerProps; const numbers = range_1.default(min, max); return (<react_native_1.Picker style={{ ...styles.picker, ...pickerStyle }} selectedValue={selectedValue} onValueChange={(value) => onChange({ id, value })} itemStyle={itemStyle}> {numbers.map((number, index) => (<react_native_1.Picker.Item key={`${id}-${number}-${index}`} value={number} label={`${number} ${label}`}/>))} </react_native_1.Picker>); }; const NumberPlease = ({ digits, values, onChange, ...rest }) => { const onChangeHandle = (value) => { const nextValues = immer_1.default(values, (draft) => { const index = lodash_findindex_1.default(draft, { id: value.id }); draft[index] = value; }); onChange(nextValues); }; return (<react_native_1.View style={styles.container}> {digits.map((picker, index) => { const pickerValues = lodash_find_1.default(values, { id: picker.id }); return (<PickerFactory key={`${picker.id}-picker-${index}`} pickerProps={picker} selectedValue={pickerValues?.value} onChange={onChangeHandle} {...rest}/>); })} </react_native_1.View>); }; const styles = react_native_1.StyleSheet.create({ container: { flexDirection: 'row', width: '100%', justifyContent: 'center', alignItems: 'center', }, picker: { height: '100%', width: 90, }, }); exports.default = NumberPlease; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTnVtYmVyUGxlYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL051bWJlclBsZWFzZS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQStCO0FBQy9CLCtDQUF3RDtBQUN4RCw4REFBK0I7QUFDL0Isd0VBQXlDO0FBQ3pDLGtEQUE0QjtBQUU1QiwwREFBa0M7QUFFbEMsTUFBTSxhQUFhLEdBQWtCLENBQUMsRUFDcEMsV0FBVyxFQUNYLGFBQWEsRUFDYixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsR0FDTCxFQUFFLEVBQUU7SUFDUixNQUFNLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQztJQUNqRCxNQUFNLE9BQU8sR0FBRyxlQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRWhDLE9BQU8sQ0FDTCxDQUFDLHFCQUFNLENBQ0wsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLEVBQUUsQ0FBQyxDQUM1QyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FDN0IsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3ZELFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUVyQjtNQUFBLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQzlCLENBQUMscUJBQU0sQ0FBQyxJQUFJLENBQ1YsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDLENBQ2hDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUNkLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDLEVBQzVCLENBQ0gsQ0FBQyxDQUNKO0lBQUEsRUFBRSxxQkFBTSxDQUFDLENBQ1YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sWUFBWSxHQUFpQyxDQUFDLEVBQ2xELE1BQU0sRUFDTixNQUFNLEVBQ04sUUFBUSxFQUNSLEdBQUcsSUFBSSxFQUNILEVBQUUsRUFBRTtJQUNSLE1BQU0sY0FBYyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7UUFDdkMsTUFBTSxVQUFVLEdBQUcsZUFBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2hELE1BQU0sS0FBSyxHQUFHLDBCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUNMLENBQUMsbUJBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQzVCO01BQUEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEtBQVUsRUFBRSxFQUFFO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLHFCQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE9BQU8sQ0FDTCxDQUFDLGFBQWEsQ0FDWixHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FDcEMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQ3BCLGFBQWEsQ0FBQyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FDbkMsUUFBUSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQ3pCLElBQUksSUFBSSxDQUFDLEVBQ1QsQ0FDSCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0o7SUFBQSxFQUFFLG1CQUFJLENBQUMsQ0FDUixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxNQUFNLEdBQUcseUJBQVUsQ0FBQyxNQUFNLENBQUM7SUFDL0IsU0FBUyxFQUFFO1FBQ1QsYUFBYSxFQUFFLEtBQUs7UUFDcEIsS0FBSyxFQUFFLE1BQU07UUFDYixjQUFjLEVBQUUsUUFBUTtRQUN4QixVQUFVLEVBQUUsUUFBUTtLQUNyQjtJQUNELE1BQU0sRUFBRTtRQUNOLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7S0FDMUI7Q0FDRixDQUFDLENBQUM7QUFFSCxrQkFBZSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBWaWV3LCBTdHlsZVNoZWV0LCBQaWNrZXIgfSBmcm9tICdyZWFjdC1uYXRpdmUnO1xuaW1wb3J0IGZpbmQgZnJvbSAnbG9kYXNoLmZpbmQnO1xuaW1wb3J0IGZpbmRJbmRleCBmcm9tICdsb2Rhc2guZmluZGluZGV4JztcbmltcG9ydCBwcm9kdWNlIGZyb20gJ2ltbWVyJztcbmltcG9ydCB7IElOdW1iZXJQbGVhc2VQcm9wcywgSVZhbHVlIH0gZnJvbSAnLi9OdW1iZXJQbGVhc2UuaW50ZXJmYWNlJztcbmltcG9ydCByYW5nZSBmcm9tICcuL3V0aWxzL3JhbmdlJztcblxuY29uc3QgUGlja2VyRmFjdG9yeTogUmVhY3QuRkM8YW55PiA9ICh7XG4gIHBpY2tlclByb3BzLFxuICBzZWxlY3RlZFZhbHVlLFxuICBvbkNoYW5nZSxcbiAgcGlja2VyU3R5bGUsXG4gIGl0ZW1TdHlsZSxcbn06IGFueSkgPT4ge1xuICBjb25zdCB7IGlkLCBsYWJlbCA9ICcnLCBtaW4sIG1heCB9ID0gcGlja2VyUHJvcHM7XG4gIGNvbnN0IG51bWJlcnMgPSByYW5nZShtaW4sIG1heCk7XG5cbiAgcmV0dXJuIChcbiAgICA8UGlja2VyXG4gICAgICBzdHlsZT17eyAuLi5zdHlsZXMucGlja2VyLCAuLi5waWNrZXJTdHlsZSB9fVxuICAgICAgc2VsZWN0ZWRWYWx1ZT17c2VsZWN0ZWRWYWx1ZX1cbiAgICAgIG9uVmFsdWVDaGFuZ2U9eyh2YWx1ZTogYW55KSA9PiBvbkNoYW5nZSh7IGlkLCB2YWx1ZSB9KX1cbiAgICAgIGl0ZW1TdHlsZT17aXRlbVN0eWxlfVxuICAgID5cbiAgICAgIHtudW1iZXJzLm1hcCgobnVtYmVyLCBpbmRleCkgPT4gKFxuICAgICAgICA8UGlja2VyLkl0ZW1cbiAgICAgICAgICBrZXk9e2Ake2lkfS0ke251bWJlcn0tJHtpbmRleH1gfVxuICAgICAgICAgIHZhbHVlPXtudW1iZXJ9XG4gICAgICAgICAgbGFiZWw9e2Ake251bWJlcn0gJHtsYWJlbH1gfVxuICAgICAgICAvPlxuICAgICAgKSl9XG4gICAgPC9QaWNrZXI+XG4gICk7XG59O1xuXG5jb25zdCBOdW1iZXJQbGVhc2U6IFJlYWN0LkZDPElOdW1iZXJQbGVhc2VQcm9wcz4gPSAoe1xuICBkaWdpdHMsXG4gIHZhbHVlcyxcbiAgb25DaGFuZ2UsXG4gIC4uLnJlc3Rcbn06IGFueSkgPT4ge1xuICBjb25zdCBvbkNoYW5nZUhhbmRsZSA9ICh2YWx1ZTogSVZhbHVlKSA9PiB7XG4gICAgY29uc3QgbmV4dFZhbHVlcyA9IHByb2R1Y2UodmFsdWVzLCAoZHJhZnQ6IGFueSkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmaW5kSW5kZXgoZHJhZnQsIHsgaWQ6IHZhbHVlLmlkIH0pO1xuICAgICAgZHJhZnRbaW5kZXhdID0gdmFsdWU7XG4gICAgfSk7XG5cbiAgICBvbkNoYW5nZShuZXh0VmFsdWVzKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxWaWV3IHN0eWxlPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgIHtkaWdpdHMubWFwKChwaWNrZXI6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBwaWNrZXJWYWx1ZXMgPSBmaW5kKHZhbHVlcywgeyBpZDogcGlja2VyLmlkIH0pO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxQaWNrZXJGYWN0b3J5XG4gICAgICAgICAgICBrZXk9e2Ake3BpY2tlci5pZH0tcGlja2VyLSR7aW5kZXh9YH1cbiAgICAgICAgICAgIHBpY2tlclByb3BzPXtwaWNrZXJ9XG4gICAgICAgICAgICBzZWxlY3RlZFZhbHVlPXtwaWNrZXJWYWx1ZXM/LnZhbHVlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlSGFuZGxlfVxuICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgIH0pfVxuICAgIDwvVmlldz5cbiAgKTtcbn07XG5cbmNvbnN0IHN0eWxlcyA9IFN0eWxlU2hlZXQuY3JlYXRlKHtcbiAgY29udGFpbmVyOiB7XG4gICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0sXG4gIHBpY2tlcjoge1xuICAgIGhlaWdodDogJzEwMCUnLCB3aWR0aDogOTAsXG4gIH0sXG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTnVtYmVyUGxlYXNlO1xuIl19