@@ -343,15 +343,12 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
343343 } else {
344344 const themeConfig = getThemeConfig ( preset ) ;
345345 if ( themeConfig ) {
346- // Generate both light and dark variants when applying
347- const lightTheme = themeConfig ( false ) ;
348- const darkTheme = themeConfig ( true ) ;
349-
350- // Apply current theme variant and save the config for future mode switches
346+ // updateCustomTheme will now automatically generate both light and dark variants
347+ // when themeConfig is provided, ensuring both modes are saved
351348 updateCustomTheme (
352- isDark ? darkTheme : lightTheme ,
349+ themeConfig ( isDark ) , // Current theme for immediate application
353350 preset ,
354- themeConfig
351+ themeConfig // This will trigger generation of both variants
355352 ) ;
356353 }
357354 }
@@ -399,9 +396,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
399396 { showControls &&
400397 ( showCards ? (
401398 < Card style = { [ styles . card , contentStyle ] } >
402- < CardHeader
403- title = { customization ?. controlsTitle ?? 'Theme Controls' }
404- />
399+ < CardHeader title = { customization ?. controlsTitle ?? 'Theme Controls' } />
405400 < CardContent >
406401 < View style = { styles . row } >
407402 < Typography
@@ -411,8 +406,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
411406 } }
412407 >
413408 { customization ?. darkModeLabel ?? 'Dark Mode' } { ' ' }
414- { isDarkModeDisabled &&
415- ( customization ?. darkModeDisabledLabel ?? '(Disabled)' ) }
409+ { isDarkModeDisabled && ( customization ?. darkModeDisabledLabel ?? '(Disabled)' ) }
416410 </ Typography >
417411 < Switcher
418412 value = { isDark }
@@ -423,44 +417,27 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
423417
424418 { previewTheme && previewTheme !== appliedTheme ? (
425419 < View >
426- < Button
427- variant = "primary"
428- onPress = { applySelectedTheme }
429- style = { styles . button }
430- >
420+ < Button variant = "primary" onPress = { applySelectedTheme } style = { styles . button } >
431421 < ButtonText >
432422 { customization ?. applyButtonText ??
433423 `Apply ${
434- selectedPreset . charAt ( 0 ) . toUpperCase ( ) +
435- selectedPreset . slice ( 1 )
424+ selectedPreset . charAt ( 0 ) . toUpperCase ( ) + selectedPreset . slice ( 1 )
436425 } Theme`}
437426 </ ButtonText >
438427 </ Button >
439428
440- < Button
441- variant = "outline"
442- onPress = { cancelPreview }
443- style = { styles . button }
444- >
445- < ButtonText >
446- { customization ?. cancelPreviewText ?? 'Cancel Preview' }
447- </ ButtonText >
429+ < Button variant = "outline" onPress = { cancelPreview } style = { styles . button } >
430+ < ButtonText > { customization ?. cancelPreviewText ?? 'Cancel Preview' } </ ButtonText >
448431 </ Button >
449432 </ View >
450433 ) : (
451- < Button
452- variant = "primary"
453- onPress = { applySelectedTheme }
454- style = { styles . button }
455- >
456- < ButtonText >
434+ < Button variant = "primary" onPress = { applySelectedTheme } style = { styles . button } >
435+ < ButtonText style = { { color : 'white' } } >
457436 { selectedPreset === 'default'
458- ? customization ?. resetButtonText ??
459- 'Reset to Default Theme'
437+ ? customization ?. resetButtonText ?? 'Reset to Default Theme'
460438 : customization ?. applyButtonText ??
461439 `Apply ${
462- selectedPreset . charAt ( 0 ) . toUpperCase ( ) +
463- selectedPreset . slice ( 1 )
440+ selectedPreset . charAt ( 0 ) . toUpperCase ( ) + selectedPreset . slice ( 1 )
464441 } Theme`}
465442 </ ButtonText >
466443 </ Button >
@@ -471,9 +448,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
471448 onPress = { ( ) => applyThemePreset ( 'default' ) }
472449 style = { styles . button }
473450 >
474- < ButtonText >
475- { customization ?. resetButtonText ?? 'Reset Theme' }
476- </ ButtonText >
451+ < ButtonText > { customization ?. resetButtonText ?? 'Reset Theme' } </ ButtonText >
477452 </ Button >
478453 </ CardContent >
479454 </ Card >
@@ -490,55 +465,34 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
490465 } }
491466 >
492467 { customization ?. darkModeLabel ?? 'Dark Mode' } { ' ' }
493- { isDarkModeDisabled &&
494- ( customization ?. darkModeDisabledLabel ?? '(Disabled)' ) }
468+ { isDarkModeDisabled && ( customization ?. darkModeDisabledLabel ?? '(Disabled)' ) }
495469 </ Typography >
496- < Switcher
497- value = { isDark }
498- onValueChange = { toggleTheme }
499- disabled = { isDarkModeDisabled }
500- />
470+ < Switcher value = { isDark } onValueChange = { toggleTheme } disabled = { isDarkModeDisabled } />
501471 </ View >
502472
503473 { previewTheme && previewTheme !== appliedTheme ? (
504474 < View >
505- < Button
506- variant = "primary"
507- onPress = { applySelectedTheme }
508- style = { styles . button }
509- >
475+ < Button variant = "primary" onPress = { applySelectedTheme } style = { styles . button } >
510476 < ButtonText >
511477 { customization ?. applyButtonText ??
512478 `Apply ${
513- selectedPreset . charAt ( 0 ) . toUpperCase ( ) +
514- selectedPreset . slice ( 1 )
479+ selectedPreset . charAt ( 0 ) . toUpperCase ( ) + selectedPreset . slice ( 1 )
515480 } Theme`}
516481 </ ButtonText >
517482 </ Button >
518483
519- < Button
520- variant = "outline"
521- onPress = { cancelPreview }
522- style = { styles . button }
523- >
524- < ButtonText >
525- { customization ?. cancelPreviewText ?? 'Cancel Preview' }
526- </ ButtonText >
484+ < Button variant = "outline" onPress = { cancelPreview } style = { styles . button } >
485+ < ButtonText > { customization ?. cancelPreviewText ?? 'Cancel Preview' } </ ButtonText >
527486 </ Button >
528487 </ View >
529488 ) : (
530- < Button
531- variant = "primary"
532- onPress = { applySelectedTheme }
533- style = { styles . button }
534- >
489+ < Button variant = "primary" onPress = { applySelectedTheme } style = { styles . button } >
535490 < ButtonText >
536491 { selectedPreset === 'default'
537492 ? customization ?. resetButtonText ?? 'Reset to Default Theme'
538493 : customization ?. applyButtonText ??
539494 `Apply ${
540- selectedPreset . charAt ( 0 ) . toUpperCase ( ) +
541- selectedPreset . slice ( 1 )
495+ selectedPreset . charAt ( 0 ) . toUpperCase ( ) + selectedPreset . slice ( 1 )
542496 } Theme`}
543497 </ ButtonText >
544498 </ Button >
@@ -549,9 +503,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
549503 onPress = { ( ) => applyThemePreset ( 'default' ) }
550504 style = { styles . button }
551505 >
552- < ButtonText >
553- { customization ?. resetButtonText ?? 'Reset Theme' }
554- </ ButtonText >
506+ < ButtonText > { customization ?. resetButtonText ?? 'Reset Theme' } </ ButtonText >
555507 </ Button >
556508 </ View >
557509 ) ) }
@@ -560,9 +512,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
560512 { showPresets &&
561513 ( showCards ? (
562514 < Card style = { [ styles . card , contentStyle ] } >
563- < CardHeader
564- title = { customization ?. presetsTitle ?? 'Theme Presets' }
565- />
515+ < CardHeader title = { customization ?. presetsTitle ?? 'Theme Presets' } />
566516 < CardContent >
567517 < View style = { styles . presetGrid } >
568518 < Button
@@ -581,8 +531,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
581531 < ButtonText >
582532 { customization ?. defaultThemeText ?? 'Default' }
583533 { appliedTheme === 'default' && selectedPreset !== 'default' }
584- { selectedPreset === 'default' &&
585- previewTheme !== appliedTheme }
534+ { selectedPreset === 'default' && previewTheme !== appliedTheme }
586535 </ ButtonText >
587536 </ Button >
588537 { themePresets . map ( ( { key, label } ) => (
@@ -631,8 +580,7 @@ export const ThemeManager: React.FC<ThemeManagerProps> = ({
631580 < ButtonText >
632581 { customization ?. defaultThemeText ?? 'Default' }
633582 { appliedTheme === 'default' && selectedPreset !== 'default' }
634- { selectedPreset === 'default' &&
635- previewTheme !== appliedTheme }
583+ { selectedPreset === 'default' && previewTheme !== appliedTheme }
636584 </ ButtonText >
637585 </ Button >
638586 { themePresets . map ( ( { key, label } ) => (
0 commit comments