UNPKG

@cross-nft-marketplace/auction-house-nft-components

Version:
42 lines (41 loc) 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useMediaContext = void 0; const react_1 = require("react"); const css_1 = require("@emotion/css"); const MediaContext_1 = require("./MediaContext"); const camelCase_1 = require("../utils/camelCase"); function useMediaContext() { const mediaContext = (0, react_1.useContext)(MediaContext_1.MediaContext); const getStyles = (themeKey, className, flags = {}) => { if (!(themeKey in mediaContext.style.styles)) { throw new Error(`"${themeKey}" not found in [${Object.keys(mediaContext.style.styles).join(", ")}]`); } const styles = mediaContext.style.styles[themeKey](mediaContext.style.theme, flags); const getUtilitySelectors = (flagsObject) => { if (Object.keys(flagsObject).length) { return Object.entries(flagsObject) .map((key) => { const objectType = typeof key[1]; return objectType === "boolean" && key[1] ? `zora-${themeKey}--${key[0]}` : objectType === "string" ? `zora-${themeKey}__${key[0]}--${(0, camelCase_1.camelCase)(key[1])}` : ""; }) .join(" "); } else { return ""; } }; return { className: `${className ? `${className} ` : ""}zora-${themeKey}${mediaContext.style.useDefaultStyles ? ` ${(0, css_1.css)(styles)}` : ""} ${getUtilitySelectors(flags)}`, }; }; const getString = (stringName) => { return mediaContext.strings[stringName]; }; return { ...mediaContext, getString, getStyles }; } exports.useMediaContext = useMediaContext;