@@ -17,7 +17,6 @@ import { DataExtensionEditorViewState } from "../../data-extensions-editor/share
1717import { ModeledMethodsList } from "./ModeledMethodsList" ;
1818import { percentFormatter } from "./formatters" ;
1919import { Mode } from "../../data-extensions-editor/shared/mode" ;
20- import { groupMethods } from "../../data-extensions-editor/shared/sorting" ;
2120
2221const LoadingContainer = styled . div `
2322 text-align: center;
@@ -75,7 +74,9 @@ export function DataExtensionsEditor({
7574 const [ externalApiUsages , setExternalApiUsages ] = useState <
7675 ExternalApiUsage [ ]
7776 > ( initialExternalApiUsages ) ;
78- const [ unsavedModels , setUnsavedModels ] = useState < Set < string > > ( new Set ( ) ) ;
77+ const [ modifiedSignatures , setModifiedSignatures ] = useState < Set < string > > (
78+ new Set ( ) ,
79+ ) ;
7980
8081 const [ modeledMethods , setModeledMethods ] = useState <
8182 Record < string , ModeledMethod >
@@ -119,15 +120,11 @@ export function DataExtensionsEditor({
119120 ) ,
120121 } ;
121122 } ) ;
122- setUnsavedModels (
123- ( oldUnsavedModels ) =>
123+ setModifiedSignatures (
124+ ( oldModifiedSignatures ) =>
124125 new Set ( [
125- ...oldUnsavedModels ,
126- ...modelsAffectedByNewModeledMethods (
127- msg . modeledMethods ,
128- externalApiUsages ,
129- viewState ?. mode ?? Mode . Application ,
130- ) ,
126+ ...oldModifiedSignatures ,
127+ ...Object . keys ( msg . modeledMethods ) ,
131128 ] ) ,
132129 ) ;
133130 break ;
@@ -145,7 +142,7 @@ export function DataExtensionsEditor({
145142 return ( ) => {
146143 window . removeEventListener ( "message" , listener ) ;
147144 } ;
148- } , [ externalApiUsages , viewState ?. mode ] ) ;
145+ } , [ ] ) ;
149146
150147 const modeledPercentage = useMemo (
151148 ( ) => calculateModeledPercentage ( externalApiUsages ) ,
@@ -160,8 +157,9 @@ export function DataExtensionsEditor({
160157 ...oldModeledMethods ,
161158 [ method . signature ] : model ,
162159 } ) ) ;
163- setUnsavedModels (
164- ( oldUnsavedModels ) => new Set ( [ ...oldUnsavedModels , modelName ] ) ,
160+ setModifiedSignatures (
161+ ( oldModifiedSignatures ) =>
162+ new Set ( [ ...oldModifiedSignatures , method . signature ] ) ,
165163 ) ;
166164 } ,
167165 [ ] ,
@@ -179,12 +177,11 @@ export function DataExtensionsEditor({
179177 externalApiUsages,
180178 modeledMethods,
181179 } ) ;
182- setUnsavedModels ( new Set ( ) ) ;
180+ setModifiedSignatures ( new Set ( ) ) ;
183181 } , [ externalApiUsages , modeledMethods ] ) ;
184182
185183 const onSaveModelClick = useCallback (
186184 (
187- modelName : string ,
188185 externalApiUsages : ExternalApiUsage [ ] ,
189186 modeledMethods : Record < string , ModeledMethod > ,
190187 ) => {
@@ -193,10 +190,12 @@ export function DataExtensionsEditor({
193190 externalApiUsages,
194191 modeledMethods,
195192 } ) ;
196- setUnsavedModels ( ( oldUnsavedModels ) => {
197- const newUnsavedModels = new Set ( oldUnsavedModels ) ;
198- newUnsavedModels . delete ( modelName ) ;
199- return newUnsavedModels ;
193+ setModifiedSignatures ( ( oldModifiedSignatures ) => {
194+ const newModifiedSignatures = new Set ( [ ...oldModifiedSignatures ] ) ;
195+ for ( const externalApiUsage of externalApiUsages ) {
196+ newModifiedSignatures . delete ( externalApiUsage . signature ) ;
197+ }
198+ return newModifiedSignatures ;
200199 } ) ;
201200 } ,
202201 [ ] ,
@@ -317,8 +316,8 @@ export function DataExtensionsEditor({
317316 </ ButtonsContainer >
318317 < ModeledMethodsList
319318 externalApiUsages = { externalApiUsages }
320- unsavedModels = { unsavedModels }
321319 modeledMethods = { modeledMethods }
320+ modifiedSignatures = { modifiedSignatures }
322321 viewState = { viewState }
323322 onChange = { onChange }
324323 onSaveModelClick = { onSaveModelClick }
@@ -331,15 +330,3 @@ export function DataExtensionsEditor({
331330 </ DataExtensionsEditorContainer >
332331 ) ;
333332}
334-
335- function modelsAffectedByNewModeledMethods (
336- modeledMethods : Record < string , ModeledMethod > ,
337- externalApiUsages : ExternalApiUsage [ ] ,
338- mode : Mode ,
339- ) : string [ ] {
340- const signatures = new Set ( Object . keys ( modeledMethods ) ) ;
341- const affectedExternalApiUsages = externalApiUsages . filter (
342- ( externalApiUsage ) => signatures . has ( externalApiUsage . signature ) ,
343- ) ;
344- return Object . keys ( groupMethods ( affectedExternalApiUsages , mode ) ) ;
345- }
0 commit comments