fix(react-base16-styling): fix Styling type (#602)

* fix(react-base16-styling): fix Styling type

* fix that
This commit is contained in:
Nathan Bierema 2020-08-21 21:51:57 -04:00 committed by GitHub
parent 40ac89aff9
commit e7304b5853
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 28 additions and 21 deletions

View File

@ -58,16 +58,5 @@
], ],
"engines": { "engines": {
"node": ">=10.13.0" "node": ">=10.13.0"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"**/*": [
"eslint --fix",
"prettier --write"
]
} }
} }

View File

@ -29,8 +29,8 @@ const invertColor = (hexString: string) => {
return Color.rgb(rgb).hex(); return Color.rgb(rgb).hex();
}; };
const merger = (styling: Styling) => { const merger = (styling: Partial<Styling>) => {
return (prevStyling: Styling) => ({ return (prevStyling: Partial<Styling>) => ({
className: [prevStyling.className, styling.className] className: [prevStyling.className, styling.className]
.filter(Boolean) .filter(Boolean)
.join(' '), .join(' '),
@ -109,7 +109,10 @@ const mergeStyling = (
case 'function': case 'function':
return (styling, ...args) => return (styling, ...args) =>
(customStyling as StylingValueFunction)( (customStyling as StylingValueFunction)(
(defaultStyling as StylingValueFunction)(styling, ...args), (defaultStyling as StylingValueFunction)(
styling,
...args
) as Styling,
...args ...args
); );
} }
@ -143,7 +146,7 @@ const getStylingByKeys = (
...args: any[] ...args: any[]
): Styling => { ): Styling => {
if (keys === null) { if (keys === null) {
return mergedStyling as Styling; return (mergedStyling as unknown) as Styling;
} }
if (!Array.isArray(keys)) { if (!Array.isArray(keys)) {

View File

@ -2,14 +2,14 @@ import { Base16Theme } from 'base16';
import * as CSS from 'csstype'; import * as CSS from 'csstype';
export interface Styling { export interface Styling {
className?: string; className: string;
style?: CSS.Properties<string | number>; style: CSS.Properties<string | number>;
} }
export type StylingValueFunction = ( export type StylingValueFunction = (
styling: Styling, styling: Styling,
...rest: any[] ...rest: any[]
) => Styling; ) => Partial<Styling>;
export type StylingValue = export type StylingValue =
| string | string

View File

@ -84,6 +84,9 @@ const getStylingFromBase16 = (base16: Base16Theme): StylingConfig => ({
additionalStyle: { additionalStyle: {
border: 0, border: 0,
}, },
testFuncNoStyle: (_, arg: string) => ({
className: `testClass--${arg}`,
}),
}); });
test('invertTheme', () => { test('invertTheme', () => {
@ -124,7 +127,14 @@ test('createStyling (custom)', () => {
testClass: 'customClass', testClass: 'customClass',
testStyle: { height: 0 }, testStyle: { height: 0 },
testFunc: (styling: Styling, arg: string) => ({ testFunc: (styling: Styling, arg: string) => ({
className: `${styling.className!} customClass--${arg}`, className: `${styling.className} customClass--${arg}`,
style: {
...styling.style,
border: 0,
},
}),
testFuncNoStyle: (styling: Styling, arg: string) => ({
className: `${styling.className} customClass--${arg}`,
style: { style: {
...styling.style, ...styling.style,
border: 0, border: 0,
@ -146,6 +156,12 @@ test('createStyling (custom)', () => {
border: 0, border: 0,
}, },
}); });
expect(customStyling('testFuncNoStyle', 'mod')).toEqual({
className: 'testClass--mod customClass--mod',
style: {
border: 0,
},
});
customStyling = styling({ customStyling = styling({
testClass: () => ({ testClass: () => ({

View File

@ -1,7 +1,6 @@
import { import {
Base16Theme, Base16Theme,
createStyling, createStyling,
Styling,
StylingConfig, StylingConfig,
} from 'react-base16-styling'; } from 'react-base16-styling';
import solarized from './themes/solarized'; import solarized from './themes/solarized';
@ -56,7 +55,7 @@ const getDefaultThemeStyling = (theme: Base16Theme): StylingConfig => {
backgroundColor: colors.BACKGROUND_COLOR, backgroundColor: colors.BACKGROUND_COLOR,
}, },
value: ({ style }, nodeType, keyPath: (string | number)[]): Styling => ({ value: ({ style }, nodeType, keyPath: (string | number)[]) => ({
style: { style: {
...style, ...style,
paddingTop: '0.25em', paddingTop: '0.25em',