UNPKG

@onesy/style-react

Version:

Onesy CSS in JS styling solution for React

45 lines (44 loc) 1.69 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const hash_1 = __importDefault(require("@onesy/utils/hash")); const merge_1 = __importDefault(require("@onesy/utils/merge")); const style_1 = require("@onesy/style"); const _1 = require("."); function inline(value_, props, options_ = { response: 'json' }) { const [value, setValue] = react_1.default.useState(undefined); const onesyStyle = (0, _1.useOnesyStyle)(); const onesyTheme = (0, _1.useOnesyTheme)(); const update = (update_ = true) => { const options = (0, merge_1.default)(options_, { onesy_style: { value: onesyStyle }, onesy_theme: { value: onesyTheme } }, { copy: true }); // Options response value options.response = 'json'; const valueNew = (0, style_1.inline)(value_, props, options); if (update_) setValue(valueNew); return valueNew; }; // Update react_1.default.useEffect(() => { update(); if (onesyTheme) onesyTheme.subscriptions.update.subscribe(update); // Clean up return () => { // Unsubscribe if (onesyTheme) onesyTheme.subscriptions.update.unsubscribe(update); }; }, []); // Update props react_1.default.useEffect(() => { update(); }, [(0, hash_1.default)(props)]); // Important for ssr value const value__ = value || update(false); return value__; } exports.default = inline;