the-platform
Version:
React Hooks and Suspense-ready Components for Web API's and elements
46 lines (37 loc) • 1.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useStylesheet = useStylesheet;
exports.Stylesheet = exports.StylesheetResource = void 0;
var _react = _interopRequireDefault(require("react"));
var _createResource = require("./createResource");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var StylesheetResource = (0, _createResource.createResource)(load, function (_ref) {
var href = _ref.href,
media = _ref.media;
return "".concat(href, ".").concat(media);
});
exports.StylesheetResource = StylesheetResource;
function load(_ref2) {
var href = _ref2.href,
_ref2$media = _ref2.media,
media = _ref2$media === void 0 ? 'all' : _ref2$media;
return new Promise(function (resolve, reject) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = href;
link.media = media;
link.onload = resolve;
link.onerror = reject;
document.body.appendChild(link);
});
}
var Stylesheet = function Stylesheet(props) {
StylesheetResource.read(props);
return _react.default.createElement("link", props);
};
exports.Stylesheet = Stylesheet;
function useStylesheet(props) {
return StylesheetResource.read(props);
}