UNPKG

@storybook/addon-ondevice-controls

Version:

Display storybook controls on your device.

32 lines (31 loc) 1.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const useResyncValue_1 = require("./useResyncValue"); const common_1 = require("./common"); function formatArray(value, separator) { if (value === '') { return []; } return value.split(separator); } const ArrayType = ({ arg: { name, value, separator = ',' }, onChange = () => null, isPristine, }) => { const { setCurrentValue, key } = (0, useResyncValue_1.useResyncValue)(value, isPristine); const [focused, setFocused] = (0, react_1.useState)(false); return ((0, jsx_runtime_1.jsx)(common_1.Input, { testID: name, underlineColorAndroid: "transparent", autoCapitalize: "none", defaultValue: value?.join(separator), onChangeText: (text) => { const formatted = formatArray(text, separator); onChange(formatted); setCurrentValue(formatted); }, onFocus: () => setFocused(true), onBlur: () => setFocused(false), focused: focused }, key)); }; ArrayType.serialize = (value) => value; ArrayType.deserialize = (value) => { if (Array.isArray(value)) { return value; } return Object.keys(value) .sort() .reduce((array, key) => [...array, value[key]], []); }; exports.default = ArrayType;