UNPKG

tweak-tools

Version:

Tweak your React projects until awesomeness

48 lines (47 loc) 1.87 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __exportStar = (this && this.__exportStar) || function(m, exports) { for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTh = exports.mergeTheme = void 0; const react_1 = require("react"); const stitches_config_1 = require("./stitches.config"); const context_1 = require("../context"); const utils_1 = require("../utils"); function mergeTheme(newTheme) { const defaultTheme = (0, stitches_config_1.getDefaultTheme)(); if (!newTheme) return { theme: defaultTheme, className: '' }; Object.keys(newTheme).forEach((key) => { // @ts-ignore Object.assign(defaultTheme[key], newTheme[key]); }); const customTheme = (0, stitches_config_1.createTheme)(defaultTheme); return { theme: defaultTheme, className: customTheme.className }; } exports.mergeTheme = mergeTheme; function useTh(category, key) { const { theme } = (0, react_1.useContext)(context_1.ThemeContext); if (!(category in theme) || !(key in theme[category])) { console.warn(utils_1.TweakErrors.THEME_ERROR, category, key); return ''; } let _key = key; while (true) { // @ts-ignore let value = theme[category][_key]; if (typeof value === 'string' && value.charAt(0) === '$') _key = value.substr(1); else return value; } } exports.useTh = useTh; __exportStar(require("./stitches.config"), exports);