@cimpress/react-components
Version:
React components to support the MCP styleguide
30 lines • 1.05 kB
JavaScript
import { useMemo } from 'react';
import { v4 as uuid } from 'uuid';
import * as colors from './colors';
function createUniqueId(label) {
const uniqueId = label ? `${label}-${uuid()}` : uuid();
return uniqueId.replace(/[^A-Za-z0-9-]/gi, '');
}
export const mapBsStyleToColor = (bsStyle, { shade = 'base', fallback = colors.coal } = {}) => {
let result = colors[bsStyle];
if (typeof result === 'object' && result[shade]) {
result = result[shade];
}
else {
result = fallback;
}
return result;
};
export const useMemoizedId = ({ id, label }) => useMemo(() => id || createUniqueId(label), [id, label]);
export function deprecatedProp(validator, suggestion = '') {
return function deprecated(props, propName, ...rest) {
if (props[propName] != null) {
console.warn(`${propName} is deprecated. ${suggestion}`);
}
return validator(props, propName, ...rest);
};
}
export function isBrowser() {
return typeof window !== 'undefined';
}
//# sourceMappingURL=utils.js.map