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..ae7a29d9222 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]);