UNPKG

@wordpress/editor

Version:
55 lines (50 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = TimeToRead; var _data = require("@wordpress/data"); var _i18n = require("@wordpress/i18n"); var _wordcount = require("@wordpress/wordcount"); var _element = require("@wordpress/element"); var _store = require("../../store"); var _jsxRuntime = require("react/jsx-runtime"); /** * WordPress dependencies */ /** * Internal dependencies */ /** * Average reading rate - based on average taken from * https://irisreading.com/average-reading-speed-in-various-languages/ * (Characters/minute used for Chinese rather than words). * * @type {number} A rough estimate of the average reading rate across multiple languages. */const AVERAGE_READING_RATE = 189; /** * Component for showing Time To Read in Content. * * @return {JSX.Element} The rendered TimeToRead component. */ function TimeToRead() { const content = (0, _data.useSelect)(select => select(_store.store).getEditedPostAttribute('content'), []); /* * translators: If your word count is based on single characters (e.g. East Asian characters), * enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'. * Do not translate into your own language. */ const wordCountType = (0, _i18n._x)('words', 'Word count type. Do not translate!'); const minutesToRead = Math.round((0, _wordcount.count)(content, wordCountType) / AVERAGE_READING_RATE); const minutesToReadString = minutesToRead === 0 ? (0, _element.createInterpolateElement)((0, _i18n.__)('<span>< 1</span> minute'), { span: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}) }) : (0, _element.createInterpolateElement)((0, _i18n.sprintf)( /* translators: %s is the number of minutes the post will take to read. */ (0, _i18n._n)('<span>%d</span> minute', '<span>%d</span> minutes', minutesToRead), minutesToRead), { span: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {}) }); return /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { className: "time-to-read", children: minutesToReadString }); } //# sourceMappingURL=index.js.map