@semcore/utils
Advanced tools
Comparing version 3.1.0 to 3.3.0
@@ -5,7 +5,27 @@ # Changelog | ||
## [3.3.0] - 2019-10-24 | ||
### Added | ||
- Добавлена возможность принудительно указывать локаль для `getText` в `WithI18n` | ||
## [3.2.2] - 2019-10-17 | ||
### Fixed | ||
- Создается и используется один и тот же контекст для WithCSS и useCss | ||
- Заменен метод `setRef` в `assignProps` | ||
## [3.2.0] - 2019-10-10 | ||
### Added | ||
- Добавлен `WithRef`/`useCss` | ||
## [3.1.0] - 2019-09-27 | ||
# Added | ||
### Added | ||
- Добавил `white`/`black` переменные цветов | ||
- Добавил `white`/`black` переменные цветов | ||
@@ -75,3 +95,3 @@ ## [3.0.2] - 2019-09-09 | ||
### Change | ||
### Changed | ||
@@ -78,0 +98,0 @@ - Обнавлена зависимость `nano-css` |
@@ -1,3 +0,2 @@ | ||
import { Ref, CSSProperties } from "react"; | ||
export declare function setRef(ref: Ref<any>, value: Node): void; | ||
import { CSSProperties, Ref } from "react"; | ||
export declare function callAllEventHandlers(...fns: any[]): (...args: any[]) => boolean; | ||
@@ -4,0 +3,0 @@ export declare function assignHandlers(props: any, source: any): {}; |
@@ -6,3 +6,2 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
}); | ||
exports.setRef = setRef; | ||
exports.callAllEventHandlers = callAllEventHandlers; | ||
@@ -16,12 +15,5 @@ exports.assignHandlers = assignHandlers; | ||
var _setRef = _interopRequireDefault(require("./setRef")); | ||
/* tslint:disable */ | ||
function setRef(ref, value) { | ||
if (typeof ref === 'function') { | ||
ref(value); | ||
} else if (ref) { | ||
// @ts-ignore | ||
ref.current = value; | ||
} | ||
} | ||
function callAllEventHandlers() { | ||
@@ -66,4 +58,4 @@ for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) { | ||
newProps.ref = function (ref) { | ||
setRef(source.ref, ref); | ||
setRef(props.ref, ref); | ||
(0, _setRef["default"])(source.ref, ref); | ||
(0, _setRef["default"])(props.ref, ref); | ||
}; | ||
@@ -70,0 +62,0 @@ } |
@@ -28,3 +28,2 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
/* tslint:disable */ | ||
var _default = function _default(EnhancedComponent) { | ||
@@ -53,3 +52,3 @@ return function creacteHoC() { | ||
return _react["default"].createElement(WrappedComponent, Object.assign({ | ||
ref: forwardedRef | ||
forwardedRef: forwardedRef | ||
}, others, enhancedComponentProps)); | ||
@@ -56,0 +55,0 @@ }); |
import React from "react"; | ||
import PropTypes from "prop-types"; | ||
import { PureComponent } from "react"; | ||
import { NanoOptions } from "nano-css"; | ||
import { CssLikeObject } from "nano-css/types/common"; | ||
declare const getStylesheet: () => string; | ||
export interface IWithCssContextCxt { | ||
sh: HTMLStyleElement; | ||
} | ||
declare const Provider: React.ProviderExoticComponent<React.ProviderProps<IWithCssContextCxt>>; | ||
/** | ||
* Ф-ция очистки обьекта стилей nanoCSS от ключей со значнение undefined | ||
* @param {Object} obj - обьект стилей nanoCSS | ||
* @returns {Object} | ||
*/ | ||
declare function normaliseCss(obj: CssLikeObject): {}; | ||
declare const WithCssContext: React.Context<NanoOptions>; | ||
declare const Provider: React.ProviderExoticComponent<React.ProviderProps<NanoOptions>>; | ||
declare function initNanoCss(options?: NanoOptions): import("nano-css").NanoRenderer; | ||
export interface IEnhancedWithCSSProps { | ||
@@ -19,7 +26,7 @@ className?: string; | ||
} | ||
declare class EnhancedWithCSS extends PureComponent<IEnhancedWithCSSProps, IEnhancedWithCSSState, IWithCssContextCxt> { | ||
declare class EnhancedWithCSS extends PureComponent<IEnhancedWithCSSProps, IEnhancedWithCSSState, NanoOptions> { | ||
static propTypes: { | ||
css: PropTypes.Requireable<object>; | ||
}; | ||
static contextType: React.Context<IWithCssContextCxt>; | ||
static contextType: React.Context<NanoOptions>; | ||
static defaultProps: { | ||
@@ -39,2 +46,2 @@ css: {}; | ||
export default _default; | ||
export { getStylesheet, EnhancedWithCSS, Provider }; | ||
export { getStylesheet, EnhancedWithCSS, Provider, WithCssContext, initNanoCss, normaliseCss }; |
@@ -8,6 +8,6 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); | ||
}); | ||
exports["default"] = exports.Provider = exports.EnhancedWithCSS = exports.getStylesheet = void 0; | ||
exports.initNanoCss = initNanoCss; | ||
exports.normaliseCss = normaliseCss; | ||
exports["default"] = exports.WithCssContext = exports.Provider = exports.EnhancedWithCSS = exports.getStylesheet = void 0; | ||
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); | ||
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); | ||
@@ -23,2 +23,4 @@ | ||
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread")); | ||
var _react = _interopRequireWildcard(require("react")); | ||
@@ -38,24 +40,50 @@ | ||
/* tslint:disable */ | ||
var nano = null; | ||
var _nano = null; | ||
var getStylesheet = function getStylesheet() { | ||
return nano ? nano.raw : ''; | ||
return _nano ? _nano.raw : ''; | ||
}; | ||
/** | ||
* Ф-ция очистки обьекта стилей nanoCSS от ключей со значнение undefined | ||
* @param {Object} obj - обьект стилей nanoCSS | ||
* @returns {Object} | ||
*/ | ||
exports.getStylesheet = getStylesheet; | ||
var removeUndefinedKyes = function removeUndefinedKyes(obj) { | ||
function normaliseCss(obj) { | ||
return Object.keys(obj).reduce(function (acc, key) { | ||
var _acc = acc; | ||
if (obj[key] !== undefined) _acc[key] = obj[key]; | ||
return _acc; | ||
var result = acc; | ||
if (obj[key] !== undefined) { | ||
result[key] = obj[key]; | ||
} | ||
return result; | ||
}, {}); | ||
}; | ||
} | ||
var WithCssContext = _react["default"].createContext({}); | ||
exports.WithCssContext = WithCssContext; | ||
var Provider = WithCssContext.Provider; | ||
exports.Provider = Provider; | ||
function initNanoCss() { | ||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
if (_nano) { | ||
return _nano; | ||
} | ||
_nano = (0, _nanoCss.create)((0, _objectSpread2["default"])({ | ||
pfx: 'css' | ||
}, options)); | ||
(0, _prefixer.addon)(_nano); | ||
(0, _rule.addon)(_nano); | ||
(0, _cache.addon)(_nano); | ||
return _nano; | ||
} | ||
var EnhancedWithCSS = | ||
@@ -74,12 +102,3 @@ /*#__PURE__*/ | ||
}; | ||
if (!nano) { | ||
nano = (0, _nanoCss.create)((0, _objectSpread2["default"])({ | ||
pfx: 'css' | ||
}, context)); | ||
(0, _prefixer.addon)(nano); | ||
(0, _rule.addon)(nano); | ||
(0, _cache.addon)(nano); | ||
} | ||
initNanoCss(context); | ||
return _this; | ||
@@ -103,5 +122,5 @@ } | ||
value: function getDerivedStateFromProps(props) { | ||
var cleanCss = removeUndefinedKyes(props.css); | ||
var cleanCss = normaliseCss(props.css); | ||
return { | ||
dynamicClassName: Object.keys(cleanCss).length ? nano.cache(cleanCss) : '' | ||
dynamicClassName: Object.keys(cleanCss).length ? _nano.cache(cleanCss) : '' | ||
}; | ||
@@ -108,0 +127,0 @@ } |
@@ -21,3 +21,3 @@ import React from "react"; | ||
static contextType: React.Context<LocaleKeys>; | ||
getText: (dictionary: Dictionary) => (key: React.ReactText) => string; | ||
getText: (dictionary: Dictionary, selfLocale: any) => (key: React.ReactText) => string; | ||
render(): React.ReactNode; | ||
@@ -24,0 +24,0 @@ } |
@@ -29,4 +29,4 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
function getText(locale, dictionary) { | ||
return function getTextByKey(key) { | ||
function getText(dictionary, locale) { | ||
return function (key) { | ||
return dictionary[locale][key]; | ||
@@ -47,6 +47,6 @@ }; | ||
_this.getText = function (dictionary) { | ||
_this.getText = function (dictionary, selfLocale) { | ||
var locale = _this.props.locale; | ||
var contextLocale = _this.context; | ||
return getText(locale || contextLocale, dictionary); | ||
return getText(dictionary, selfLocale || locale || contextLocale); | ||
}; | ||
@@ -75,4 +75,4 @@ | ||
return (0, _react.useMemo)(function () { | ||
return getText(lang, dictionary); | ||
}, [lang, dictionary]); | ||
return getText(dictionary, lang); | ||
}, [dictionary, lang]); | ||
}; | ||
@@ -79,0 +79,0 @@ |
{ | ||
"name": "@semcore/utils", | ||
"description": "SEMRush Utils Component", | ||
"version": "3.1.0", | ||
"version": "3.3.0", | ||
"author": "Roman Lysov <r.lysov@semrush.com>", | ||
@@ -9,3 +9,3 @@ "license": "MIT", | ||
"build": "rollup --config=node:rollup-config-ts-multi", | ||
"test": "jest --no-cache" | ||
"test": "jest" | ||
}, | ||
@@ -17,3 +17,2 @@ "peerDependencies": { | ||
"devDependencies": { | ||
"rollup-config-ts-multi": "*", | ||
"jest": "*", | ||
@@ -23,3 +22,4 @@ "jest-preset-ui": "*", | ||
"react-dom": "^16.8", | ||
"request": "^2.87" | ||
"request": "^2.87", | ||
"rollup-config-ts-multi": "*" | ||
}, | ||
@@ -26,0 +26,0 @@ "dependencies": { |
/* tslint:disable */ | ||
import cn from 'classnames'; | ||
import { Ref, CSSProperties } from 'react'; | ||
import { CSSProperties, Ref } from 'react'; | ||
import setRef from './setRef'; | ||
export function setRef(ref: Ref<any>, value: Node) { | ||
if (typeof ref === 'function') { | ||
ref(value); | ||
} else if (ref) { | ||
// @ts-ignore | ||
ref.current = value; | ||
} | ||
} | ||
export function callAllEventHandlers(...fns) { | ||
@@ -15,0 +7,0 @@ return (...args) => |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
137975
116
1822