@yandex/ui
Version:
Yandex UI components
27 lines (26 loc) • 827 B
JavaScript
import React, { createContext, useContext, useMemo } from 'react';
/**
* @internal
*/
export var initialContextValue = { value: 0, id: 0 };
export var SSRContext = createContext(initialContextValue);
/**
* Реакт-провайдер синхронизирующий данные верстки при гидратации приложения.
*
* @example
* const Root = () => (
* <SSRProvider>
* <App />
* </SSRProvider>
* )
*/
export var SSRProvider = function (_a) {
var children = _a.children;
var context = useContext(SSRContext);
// prettier-ignore
var value = useMemo(function () { return ({
value: 0,
id: context === initialContextValue ? 0 : ++context.id,
}); }, [context]);
return React.createElement(SSRContext.Provider, { value: value }, children);
};