From 75f792b5ca6347022c7005e1e4ecabd82b1fb617 Mon Sep 17 00:00:00 2001 From: Hossein Mohammadi Date: Sun, 11 Apr 2021 03:21:42 +0430 Subject: [PATCH 1/5] fix: add fallbacks to jssStyle --- packages/jss/src/index.d.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/jss/src/index.d.ts b/packages/jss/src/index.d.ts index 819aa5a9c..33ee2ae20 100644 --- a/packages/jss/src/index.d.ts +++ b/packages/jss/src/index.d.ts @@ -16,7 +16,9 @@ type Func = T extends undefined ? ((data: P) => R) : ((data: P & {theme type NormalCssProperties = CSSProperties type NormalCssValues = K extends keyof NormalCssProperties ? NormalCssProperties[K] : JssValue -export type JssStyle = +export type JssStyle = { + fallbacks: JssStyle | (JssStyle[]) +} & ( | { [K in keyof NormalCssProperties]: | NormalCssValues @@ -30,7 +32,7 @@ export type JssStyle = | JssStyle | Func | undefined> | MinimalObservable - } + }) export type Styles< Name extends string | number | symbol = string, From cdf00accefe3b45fe6d2f5347a090178841d2420 Mon Sep 17 00:00:00 2001 From: Hossein Mohammadi Date: Sun, 11 Apr 2021 03:29:38 +0430 Subject: [PATCH 2/5] fix: fallbacks to be optional --- packages/jss/src/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jss/src/index.d.ts b/packages/jss/src/index.d.ts index 33ee2ae20..d08a0f47f 100644 --- a/packages/jss/src/index.d.ts +++ b/packages/jss/src/index.d.ts @@ -17,7 +17,7 @@ type NormalCssProperties = CSSProperties type NormalCssValues = K extends keyof NormalCssProperties ? NormalCssProperties[K] : JssValue export type JssStyle = { - fallbacks: JssStyle | (JssStyle[]) + fallbacks?: JssStyle | (JssStyle[]) } & ( | { [K in keyof NormalCssProperties]: From 893045d40efe35eae60a5e84568634207cfe0e91 Mon Sep 17 00:00:00 2001 From: Hossein Mohammadi Date: Tue, 20 Apr 2021 22:42:26 +0430 Subject: [PATCH 3/5] test: fallbacks --- packages/jss/tests/jss-tests.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/packages/jss/tests/jss-tests.ts b/packages/jss/tests/jss-tests.ts index 4ad75e8d5..a539c1c5c 100644 --- a/packages/jss/tests/jss-tests.ts +++ b/packages/jss/tests/jss-tests.ts @@ -72,6 +72,31 @@ attachedStyleSheet.addRules({ } }) +// fallbacks test +attachedStyleSheet.addRules({ + rule4: { + fallbacks: { + fontFamily: 'other', + color: '#black' + }, + fontFamily: 'Roboto', + color: '#FFFFFF' + }, + rule5: { + // @ts-expect-error + fallbacks: { + borderRadius: ['solid', 2], + fontSize: Symbol() + }, + borderRadius: ['solid', 2], + fontSize: 17 + }, + rule6: { + // @ts-expect-error + fallbacks: Symbol() + } +}) + const styleSheet2 = sharedInstance.createStyleSheet({ container: { background: '#000099' From de99cd13aabb1459a1fca150c0aac487af8c058a Mon Sep 17 00:00:00 2001 From: Hossein Mohammadi Date: Fri, 23 Apr 2021 22:42:57 +0430 Subject: [PATCH 4/5] tests: add array type fallbacks to test --- packages/jss/tests/jss-tests.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/jss/tests/jss-tests.ts b/packages/jss/tests/jss-tests.ts index a539c1c5c..eb043a044 100644 --- a/packages/jss/tests/jss-tests.ts +++ b/packages/jss/tests/jss-tests.ts @@ -94,6 +94,10 @@ attachedStyleSheet.addRules({ rule6: { // @ts-expect-error fallbacks: Symbol() + }, + container: { + display: 'flex', + fallbacks: [{display: 'box'}, {display: 'flex-box'}] } }) From 602d9e5e611181e6badc6a67d189bd0890db14f8 Mon Sep 17 00:00:00 2001 From: Hossein Mohammadi Date: Fri, 2 Jul 2021 14:47:33 +0430 Subject: [PATCH 5/5] fix: expected error --- packages/jss/tests/jss-tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/jss/tests/jss-tests.ts b/packages/jss/tests/jss-tests.ts index eb043a044..1c44c6818 100644 --- a/packages/jss/tests/jss-tests.ts +++ b/packages/jss/tests/jss-tests.ts @@ -82,8 +82,8 @@ attachedStyleSheet.addRules({ fontFamily: 'Roboto', color: '#FFFFFF' }, + // @ts-expect-error rule5: { - // @ts-expect-error fallbacks: { borderRadius: ['solid', 2], fontSize: Symbol() @@ -91,8 +91,8 @@ attachedStyleSheet.addRules({ borderRadius: ['solid', 2], fontSize: 17 }, + // @ts-expect-error rule6: { - // @ts-expect-error fallbacks: Symbol() }, container: {