Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
"use strict";
|
||||
/* eslint-disable @typescript-eslint/ban-types */
|
||||
/* eslint-disable @typescript-eslint/no-explicit-any */
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.useMergedClasses = exports.mergeClasses = void 0;
|
||||
const objectKeys_1 = require("./tools/objectKeys");
|
||||
const getDependencyArrayRef_1 = require("./tools/getDependencyArrayRef");
|
||||
const cssAndCx_1 = require("./cssAndCx");
|
||||
const react_1 = require("react");
|
||||
function mergeClasses(classesFromUseStyles, classesFromProps, cx) {
|
||||
//NOTE: We use this test to be resilient in case classesFromProps is not of the expected type.
|
||||
if (!(classesFromProps instanceof Object)) {
|
||||
return classesFromUseStyles;
|
||||
}
|
||||
const out = {};
|
||||
(0, objectKeys_1.objectKeys)(classesFromUseStyles).forEach(ruleName => (out[ruleName] = cx(classesFromUseStyles[ruleName], classesFromProps[ruleName])));
|
||||
(0, objectKeys_1.objectKeys)(classesFromProps).forEach(ruleName => {
|
||||
if (ruleName in classesFromUseStyles) {
|
||||
return;
|
||||
}
|
||||
const className = classesFromProps[ruleName];
|
||||
//...Same here, that why we don't do className === undefined
|
||||
if (typeof className !== "string") {
|
||||
return;
|
||||
}
|
||||
out[ruleName] = className;
|
||||
});
|
||||
return out;
|
||||
}
|
||||
exports.mergeClasses = mergeClasses;
|
||||
function useMergedClasses(classes, classesOv) {
|
||||
const { cx } = (0, cssAndCx_1.useCssAndCx)();
|
||||
return (0, react_1.useMemo)(() => mergeClasses(classes, classesOv, cx), [classes, (0, getDependencyArrayRef_1.getDependencyArrayRef)(classesOv), cx]);
|
||||
}
|
||||
exports.useMergedClasses = useMergedClasses;
|
||||
Reference in New Issue
Block a user