UNPKG

@shopify/react-html

Version:

A component to render your react app with no static HTML.

26 lines (25 loc) 1.19 kB
"use strict"; 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;