@@ -46,16 +46,42 @@ export const SubscriptionPageBuilderComponent = () => {
4646 const newApp = createEmptyApp ( activeTab )
4747 const updatedConfig = { ...config }
4848 updatedConfig [ activeTab ] = [ ...updatedConfig [ activeTab ] , newApp ]
49+
4950 setConfig ( updatedConfig )
50- setSelectedAppId ( newApp . id )
51+
52+ setTimeout ( ( ) => {
53+ setSelectedAppId ( newApp . id )
54+ } , 10 )
5155 }
5256
53- const updateApp = ( updatedApp : AppConfig ) => {
57+ const updateApp = ( updatedApp : AppConfig & { _oldId ?: string } ) => {
5458 const updatedConfig = { ...config }
55- const appIndex = updatedConfig [ activeTab ] . findIndex ( ( app ) => app . id === updatedApp . id )
56- if ( appIndex !== - 1 ) {
57- updatedConfig [ activeTab ] [ appIndex ] = updatedApp
58- setConfig ( updatedConfig )
59+
60+ if ( updatedApp . _oldId && updatedApp . _oldId !== updatedApp . id ) {
61+ const appIndex = updatedConfig [ activeTab ] . findIndex (
62+ ( app ) => app . id === updatedApp . _oldId
63+ )
64+ if ( appIndex !== - 1 ) {
65+ const appWithoutOldId = { ...updatedApp } as AppConfig
66+ delete ( appWithoutOldId as AppConfig & { _oldId ?: string } ) . _oldId
67+ updatedConfig [ activeTab ] [ appIndex ] = appWithoutOldId
68+
69+ if ( selectedAppId === updatedApp . _oldId ) {
70+ setSelectedAppId ( updatedApp . id )
71+ }
72+
73+ setConfig ( updatedConfig )
74+ }
75+ } else {
76+ const appIndex = updatedConfig [ activeTab ] . findIndex ( ( app ) => app . id === updatedApp . id )
77+ if ( appIndex !== - 1 ) {
78+ const appWithoutOldId = { ...updatedApp } as AppConfig
79+ if ( ( updatedApp as AppConfig & { _oldId ?: string } ) . _oldId ) {
80+ delete ( appWithoutOldId as AppConfig & { _oldId ?: string } ) . _oldId
81+ }
82+ updatedConfig [ activeTab ] [ appIndex ] = appWithoutOldId
83+ setConfig ( updatedConfig )
84+ }
5985 }
6086 }
6187
0 commit comments