@yandex/ui
Version:
Yandex UI components
32 lines (31 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SSRProvider = exports.SSRContext = exports.initialContextValue = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
/**
* @internal
*/
exports.initialContextValue = { value: 0, id: 0 };
exports.SSRContext = react_1.createContext(exports.initialContextValue);
/**
* Реакт-провайдер синхронизирующий данные верстки при гидратации приложения.
*
* @example
* const Root = () => (
* <SSRProvider>
* <App />
* </SSRProvider>
* )
*/
var SSRProvider = function (_a) {
var children = _a.children;
var context = react_1.useContext(exports.SSRContext);
// prettier-ignore
var value = react_1.useMemo(function () { return ({
value: 0,
id: context === exports.initialContextValue ? 0 : ++context.id,
}); }, [context]);
return react_1.default.createElement(exports.SSRContext.Provider, { value: value }, children);
};
exports.SSRProvider = SSRProvider;