From 09e7205f882a6671f35583141837ce55fee7ee41 Mon Sep 17 00:00:00 2001 From: Yogev Ben David Date: Sat, 4 Sep 2021 20:56:29 +0300 Subject: [PATCH 1/2] Support DynamicColorIOS --- lib/src/commands/OptionsProcessor.test.ts | 13 ++++++++++++- lib/src/commands/OptionsProcessor.ts | 10 +++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/src/commands/OptionsProcessor.test.ts b/lib/src/commands/OptionsProcessor.test.ts index defc886f284..2caaa50cd12 100644 --- a/lib/src/commands/OptionsProcessor.test.ts +++ b/lib/src/commands/OptionsProcessor.test.ts @@ -13,7 +13,7 @@ import { AssetService } from '../adapters/AssetResolver'; import { Deprecations } from './Deprecations'; import { CommandName } from '../interfaces/CommandName'; import { OptionsProcessor as Processor } from '../interfaces/Processors'; -import { Platform } from 'react-native'; +import { DynamicColorIOS, Platform } from 'react-native'; describe('navigation options', () => { let uut: OptionsProcessor; @@ -574,6 +574,17 @@ describe('navigation options', () => { }, }); }); + + it('supports DynamicColorIOS', () => { + const options: Options = { + topBar: { background: { color: DynamicColorIOS({ light: 'red', dark: 'blue' }) } }, + }; + + uut.processOptions(options, CommandName.SetRoot); + expect(options).toEqual({ + topBar: { background: { color: { dynamic: { light: 0xffff0000, dark: 0xff0000ff } } } }, + }); + }); }); }); diff --git a/lib/src/commands/OptionsProcessor.ts b/lib/src/commands/OptionsProcessor.ts index 4023736c0c9..1017542a53b 100644 --- a/lib/src/commands/OptionsProcessor.ts +++ b/lib/src/commands/OptionsProcessor.ts @@ -123,6 +123,12 @@ export class OptionsProcessor { if ('semantic' in value || 'resource_paths' in value) { options[key] = value; return; + } else if ('dynamic' in value) { + for (let keyColor in value.dynamic) { + newColorObj[keyColor] = this.colorService.toNativeColor(value.dynamic[keyColor]); + } + + options[key] = newColorObj; } else { for (let keyColor in value) { newColorObj[keyColor] = this.colorService.toNativeColor(value[keyColor]); @@ -136,7 +142,9 @@ export class OptionsProcessor { options[key] = newColorObj; } - if (Platform.OS === 'ios') options[key] = DynamicColorIOS(options[key]); + if (Platform.OS === 'ios') { + options[key] = DynamicColorIOS(options[key]); + } } } From 2caeda665dbcdcf34ff4e1259e357b66ad9c174e Mon Sep 17 00:00:00 2001 From: Yogev Ben David Date: Sat, 4 Sep 2021 21:00:55 +0300 Subject: [PATCH 2/2] Update OptionsProcessor.ts --- lib/src/commands/OptionsProcessor.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/src/commands/OptionsProcessor.ts b/lib/src/commands/OptionsProcessor.ts index 1017542a53b..ae7a29d9222 100644 --- a/lib/src/commands/OptionsProcessor.ts +++ b/lib/src/commands/OptionsProcessor.ts @@ -142,9 +142,7 @@ export class OptionsProcessor { options[key] = newColorObj; } - if (Platform.OS === 'ios') { - options[key] = DynamicColorIOS(options[key]); - } + if (Platform.OS === 'ios') options[key] = DynamicColorIOS(options[key]); } }