@shopify/react-html
Version:
A component to render your react app with no static HTML.
26 lines (25 loc) • 1.19 kB
JavaScript
;
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
result["default"] = mod;
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
var React = __importStar(require("react"));
var react_effect_1 = require("@shopify/react-effect");
var context_1 = require("./context");
exports.EXTRACT_ID = Symbol('serialize');
function createSerializer(id) {
function Serialize(_a) {
var data = _a.data;
return (React.createElement(context_1.Consumer, null, function (manager) { return (React.createElement(react_effect_1.Effect, { serverOnly: true, kind: exports.EXTRACT_ID, perform: function () { return manager.set(id, data()); } })); }));
}
function WithSerialized(_a) {
var children = _a.children;
return React.createElement(context_1.Consumer, null, function (manager) { return children(manager.get(id)); });
}
return { Serialize: Serialize, WithSerialized: WithSerialized };
}
exports.createSerializer = createSerializer;