@storybook/addon-knobs
Version:
Storybook addon for editing props
59 lines (58 loc) • 1.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _global = require("global");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireDefault(require("react"));
var _theming = require("@storybook/theming");
var _components = require("@storybook/components");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var FileInput = (0, _theming.styled)(_components.Form.Input)({
paddingTop: 4
});
function fileReaderPromise(file) {
return new Promise(function (resolve) {
var fileReader = new _global.FileReader();
fileReader.onload = function (e) {
return resolve(e.currentTarget.result);
};
fileReader.readAsDataURL(file);
});
}
var serialize = function serialize() {
return undefined;
};
var deserialize = function deserialize() {
return undefined;
};
var FilesType = function FilesType(_ref) {
var _ref$knob = _ref.knob,
knob = _ref$knob === void 0 ? {} : _ref$knob,
_ref$onChange = _ref.onChange,
_onChange = _ref$onChange === void 0 ? function (value) {
return value;
} : _ref$onChange;
return /*#__PURE__*/_react["default"].createElement(FileInput, {
type: "file",
name: knob.name,
multiple: true,
onChange: function onChange(e) {
if (e.target.files) {
Promise.all(Array.from(e.target.files).map(fileReaderPromise)).then(_onChange);
}
},
accept: knob.accept,
size: "flex"
});
};
FilesType.propTypes = {
knob: _propTypes["default"].shape({
name: _propTypes["default"].string
}),
onChange: _propTypes["default"].func
};
FilesType.serialize = serialize;
FilesType.deserialize = deserialize;
var _default = exports["default"] = FilesType;