react-say
Version:
[](https://badge.fury.io/js/react-say) [](https://travis-ci.org/compulim/react-say)
107 lines (93 loc) • 11 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _migrateDeprecatedProps = _interopRequireDefault(require("./migrateDeprecatedProps"));
var _Say = _interopRequireDefault(require("./Say"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
var SayButton = function SayButton(props) {
var _migrateDeprecatedPro = (0, _migrateDeprecatedProps["default"])(props, SayButton),
children = _migrateDeprecatedPro.children,
disabled = _migrateDeprecatedPro.disabled,
lang = _migrateDeprecatedPro.lang,
onBoundary = _migrateDeprecatedPro.onBoundary,
_onEnd = _migrateDeprecatedPro.onEnd,
onError = _migrateDeprecatedPro.onError,
onStart = _migrateDeprecatedPro.onStart,
pitch = _migrateDeprecatedPro.pitch,
ponyfill = _migrateDeprecatedPro.ponyfill,
rate = _migrateDeprecatedPro.rate,
text = _migrateDeprecatedPro.text,
voice = _migrateDeprecatedPro.voice,
volume = _migrateDeprecatedPro.volume;
var _useState = (0, _react.useState)(false),
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
busy = _useState2[0],
setBusy = _useState2[1];
var handleClick = (0, _react.useCallback)(function () {
return setBusy(true);
});
var sayProps = {
lang: lang,
onBoundary: onBoundary,
onEnd: function onEnd(event) {
setBusy(false);
_onEnd && _onEnd(event);
},
onError: onError,
onStart: onStart,
pitch: pitch,
ponyfill: ponyfill,
rate: rate,
text: text,
voice: voice,
volume: volume
};
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("button", {
disabled: typeof disabled === 'boolean' ? disabled : busy,
onClick: handleClick
}, children), busy && /*#__PURE__*/_react["default"].createElement(_Say["default"], sayProps));
};
SayButton.defaultProps = {
children: undefined,
disabled: undefined,
lang: undefined,
onBoundary: undefined,
onEnd: undefined,
onError: undefined,
onStart: undefined,
pitch: undefined,
ponyfill: undefined,
rate: undefined,
text: undefined,
voice: undefined,
volume: undefined
};
SayButton.propTypes = {
children: _propTypes["default"].any,
disabled: _propTypes["default"].bool,
lang: _propTypes["default"].string,
onBoundary: _propTypes["default"].func,
onEnd: _propTypes["default"].func,
onError: _propTypes["default"].func,
onStart: _propTypes["default"].func,
pitch: _propTypes["default"].number,
ponyfill: _propTypes["default"].shape({
speechSynthesis: _propTypes["default"].any.isRequired,
SpeechSynthesisUtterance: _propTypes["default"].any.isRequired
}),
rate: _propTypes["default"].number,
text: _propTypes["default"].string,
voice: _propTypes["default"].oneOfType([_propTypes["default"].any, _propTypes["default"].func]),
volume: _propTypes["default"].number
};
var _default = SayButton;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9TYXlCdXR0b24uanMiXSwibmFtZXMiOlsiU2F5QnV0dG9uIiwicHJvcHMiLCJjaGlsZHJlbiIsImRpc2FibGVkIiwibGFuZyIsIm9uQm91bmRhcnkiLCJvbkVuZCIsIm9uRXJyb3IiLCJvblN0YXJ0IiwicGl0Y2giLCJwb255ZmlsbCIsInJhdGUiLCJ0ZXh0Iiwidm9pY2UiLCJ2b2x1bWUiLCJidXN5Iiwic2V0QnVzeSIsImhhbmRsZUNsaWNrIiwic2F5UHJvcHMiLCJldmVudCIsImRlZmF1bHRQcm9wcyIsInVuZGVmaW5lZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFueSIsImJvb2wiLCJzdHJpbmciLCJmdW5jIiwibnVtYmVyIiwic2hhcGUiLCJzcGVlY2hTeW50aGVzaXMiLCJpc1JlcXVpcmVkIiwiU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlIiwib25lT2ZUeXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLFNBQVMsR0FBRyxTQUFaQSxTQUFZLENBQUFDLEtBQUssRUFBSTtBQUN6Qiw4QkFjSSx3Q0FBdUJBLEtBQXZCLEVBQThCRCxTQUE5QixDQWRKO0FBQUEsTUFDRUUsUUFERix5QkFDRUEsUUFERjtBQUFBLE1BRUVDLFFBRkYseUJBRUVBLFFBRkY7QUFBQSxNQUdFQyxJQUhGLHlCQUdFQSxJQUhGO0FBQUEsTUFJRUMsVUFKRix5QkFJRUEsVUFKRjtBQUFBLE1BS0VDLE1BTEYseUJBS0VBLEtBTEY7QUFBQSxNQU1FQyxPQU5GLHlCQU1FQSxPQU5GO0FBQUEsTUFPRUMsT0FQRix5QkFPRUEsT0FQRjtBQUFBLE1BUUVDLEtBUkYseUJBUUVBLEtBUkY7QUFBQSxNQVNFQyxRQVRGLHlCQVNFQSxRQVRGO0FBQUEsTUFVRUMsSUFWRix5QkFVRUEsSUFWRjtBQUFBLE1BV0VDLElBWEYseUJBV0VBLElBWEY7QUFBQSxNQVlFQyxLQVpGLHlCQVlFQSxLQVpGO0FBQUEs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YixFQUFBQSxLQUFLLEVBQUVVLHNCQUFVVSxTQUFWLENBQW9CLENBQUNWLHNCQUFVQyxHQUFYLEVBQWdCRCxzQkFBVUksSUFBMUIsQ0FBcEIsQ0FmYTtBQWdCcEJiLEVBQUFBLE1BQU0sRUFBRVMsc0JBQVVLO0FBaEJFLENBQXRCO2VBbUJlNUIsUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgbWlncmF0ZURlcHJlY2F0ZWRQcm9wcyBmcm9tICcuL21pZ3JhdGVEZXByZWNhdGVkUHJvcHMnO1xuaW1wb3J0IFNheSBmcm9tICcuL1NheSc7XG5cbmNvbnN0IFNheUJ1dHRvbiA9IHByb3BzID0+IHtcbiAgY29uc3Qge1xuICAgIGNoaWxkcmVuLFxuICAgIGRpc2FibGVkLFxuICAgIGxhbmcsXG4gICAgb25Cb3VuZGFyeSxcbiAgICBvbkVuZCxcbiAgICBvbkVycm9yLFxuICAgIG9uU3RhcnQsXG4gICAgcGl0Y2gsXG4gICAgcG9ueWZpbGwsXG4gICAgcmF0ZSxcbiAgICB0ZXh0LFxuICAgIHZvaWNlLFxuICAgIHZvbHVtZVxuICB9ID0gbWlncmF0ZURlcHJlY2F0ZWRQcm9wcyhwcm9wcywgU2F5QnV0dG9uKTtcblxuICBjb25zdCBbYnVzeSwgc2V0QnVzeV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4gc2V0QnVzeSh0cnVlKSk7XG4gIGNvbnN0IHNheVByb3BzID0ge1xuICAgIGxhbmcsXG4gICAgb25Cb3VuZGFyeSxcbiAgICBvbkVuZDogZXZlbnQgPT4ge1xuICAgICAgc2V0QnVzeShmYWxzZSk7XG4gICAgICBvbkVuZCAmJiBvbkVuZChldmVudCk7XG4gICAgfSxcbiAgICBvbkVycm9yLFxuICAgIG9uU3RhcnQsXG4gICAgcGl0Y2gsXG4gICAgcG9ueWZpbGwsXG4gICAgcmF0ZSxcbiAgICB0ZXh0LFxuICAgIHZvaWNlLFxuICAgIHZvbHVtZVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPFJlYWN0LkZyYWdtZW50PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBkaXNhYmxlZD17IHR5cGVvZiBkaXNhYmxlZCA9PT0gJ2Jvb2xlYW4nID8gZGlzYWJsZWQgOiBidXN5IH1cbiAgICAgICAgb25DbGljaz17IGhhbmRsZUNsaWNrIH1cbiAgICAgID5cbiAgICAgICAgeyBjaGlsZHJlbiB9XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIHsgYnVzeSAmJiA8U2F5IHsgLi4uc2F5UHJvcHMgfSAvPiB9XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKTtcbn07XG5cblNheUJ1dHRvbi5kZWZhdWx0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiB1bmRlZmluZWQsXG4gIGxhbmc6IHVuZGVmaW5lZCxcbiAgb25Cb3VuZGFyeTogdW5kZWZpbmVkLFxuICBvbkVuZDogdW5kZWZpbmVkLFxuICBvbkVycm9yOiB1bmRlZmluZWQsXG4gIG9uU3RhcnQ6IHVuZGVmaW5lZCxcbiAgcGl0Y2g6IHVuZGVmaW5lZCxcbiAgcG9ueWZpbGw6IHVuZGVmaW5lZCxcbiAgcmF0ZTogdW5kZWZpbmVkLFxuICB0ZXh0OiB1bmRlZmluZWQsXG4gIHZvaWNlOiB1bmRlZmluZWQsXG4gIHZvbHVtZTogdW5kZWZpbmVkXG59O1xuXG5TYXlCdXR0b24ucHJvcFR5cGVzID0ge1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLmFueSxcbiAgZGlzYWJsZWQ6IFByb3BUeXBlcy5ib29sLFxuICBsYW5nOiBQcm9wVHlwZXMuc3RyaW5nLFxuICBvbkJvdW5kYXJ5OiBQcm9wVHlwZXMuZnVuYyxcbiAgb25FbmQ6IFByb3BUeXBlcy5mdW5jLFxuICBvbkVycm9yOiBQcm9wVHlwZXMuZnVuYyxcbiAgb25TdGFydDogUHJvcFR5cGVzLmZ1bmMsXG4gIHBpdGNoOiBQcm9wVHlwZXMubnVtYmVyLFxuICBwb255ZmlsbDogUHJvcFR5cGVzLnNoYXBlKHtcbiAgICBzcGVlY2hTeW50aGVzaXM6IFByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZCxcbiAgICBTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2U6IFByb3BUeXBlcy5hbnkuaXNSZXF1aXJlZFxuICB9KSxcbiAgcmF0ZTogUHJvcFR5cGVzLm51bWJlcixcbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgdm9pY2U6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hbnksIFByb3BUeXBlcy5mdW5jXSksXG4gIHZvbHVtZTogUHJvcFR5cGVzLm51bWJlclxufTtcblxuZXhwb3J0IGRlZmF1bHQgU2F5QnV0dG9uXG4iXX0=