@@ -43,7 +43,7 @@ interface BannerEditorProps {
4343 onDataChange : ( data : IBannerFormData ) => void ;
4444 onSave : ( data : IBannerFormData ) => void ;
4545 saving ?: boolean ;
46- onCancel ? : ( ) => void ;
46+ onCancel : ( ) => void ;
4747 errorMessage ?: string | null ;
4848 validationErrors ?: IValidationError [ ] ;
4949}
@@ -303,6 +303,17 @@ export function BannerEditor({ initialData, onDataChange, onSave, saving = false
303303 newData = handleTemplateTypeChange ( newTemplateType , newData ) ;
304304 }
305305
306+ // Handle background type change: when switching away from IMAGE, reset Background.Value
307+ if ( path === 'Background.Type' ) {
308+ debugger
309+ const newBackgroundType = value as BackgroundType ;
310+ const previousBackgroundType = ( prev as IBannerFormData ) . Background . Type ;
311+
312+ if ( previousBackgroundType === BackgroundType . IMAGE && newBackgroundType !== BackgroundType . IMAGE ) {
313+ newData . Background . Value = '#38ae8e' ;
314+ }
315+ }
316+
306317 // Walk the path, cloning each branch as we go using indexable records
307318 let current : Record < string , unknown > = newData as unknown as Record < string , unknown > ;
308319 let source : Record < string , unknown > = prev as unknown as Record < string , unknown > ;
@@ -399,7 +410,7 @@ export function BannerEditor({ initialData, onDataChange, onSave, saving = false
399410 setFormData ( prev => {
400411 if ( ( prev . PartnershipCharter ?. PartnerLogos ?. length || 0 ) >= 5 ) {
401412 // Optionally, set an error message to inform the user
402- setErrors ( e => ( { ...e , PartnerLogos : 'You can only upload a maximum of 5 logos.' } ) ) ;
413+ setErrors ( e => ( { ...e , 'Partner Logos' : 'You can only upload a maximum of 5 logos.' } ) ) ;
403414 return prev ;
404415 }
405416 return {
@@ -445,22 +456,13 @@ export function BannerEditor({ initialData, onDataChange, onSave, saving = false
445456 if ( JSON . stringify ( formData ) !== JSON . stringify ( originalDataRef . current ) ) {
446457 setShowConfirmModal ( true ) ;
447458 } else {
448- // No changes, just close/revert
449- if ( onCancel ) {
450- onCancel ( ) ;
451- }
459+ confirmCancel ( ) ;
452460 }
453461 } ;
454462
455463 const confirmCancel = ( ) => {
456464 setShowConfirmModal ( false ) ;
457-
458- // Restore the original data
459- setFormData ( JSON . parse ( JSON . stringify ( originalDataRef . current ) ) ) ;
460-
461- if ( onCancel ) {
462- onCancel ( ) ;
463- }
465+ onCancel ( ) ;
464466 } ;
465467
466468 const cleanTemplateData = ( data : IBannerFormData ) : IBannerFormData => {
@@ -1284,7 +1286,7 @@ export function BannerEditor({ initialData, onDataChange, onSave, saving = false
12841286 title = "Close without saving?"
12851287 message = "You may lose unsaved changes."
12861288 variant = "warning"
1287- confirmLabel = "Discard changes "
1289+ confirmLabel = "Close Without Saving "
12881290 cancelLabel = "Continue Editing"
12891291 />
12901292 </ div >
0 commit comments