@@ -5,10 +5,6 @@ import { DatabaseItem } from "../databases/local-databases";
55import { Method , Usage } from "./method" ;
66import { ModeledMethod } from "./modeled-method" ;
77import { INITIAL_HIDE_MODELED_METHODS_VALUE } from "./shared/hide-modeled-methods" ;
8- import {
9- InProgressMethods ,
10- hasInProgressMethodSignature ,
11- } from "./shared/in-progress-methods" ;
128import { INITIAL_MODE , Mode } from "./shared/mode" ;
139
1410interface InternalDbModelingState {
@@ -18,7 +14,7 @@ interface InternalDbModelingState {
1814 mode : Mode ;
1915 modeledMethods : Record < string , ModeledMethod [ ] > ;
2016 modifiedMethodSignatures : Set < string > ;
21- inProgressMethods : InProgressMethods ;
17+ inProgressMethods : Set < string > ;
2218 selectedMethod : Method | undefined ;
2319 selectedUsage : Usage | undefined ;
2420}
@@ -30,6 +26,7 @@ interface DbModelingState {
3026 readonly mode : Mode ;
3127 readonly modeledMethods : Readonly < Record < string , readonly ModeledMethod [ ] > > ;
3228 readonly modifiedMethodSignatures : ReadonlySet < string > ;
29+ readonly inProgressMethods : ReadonlySet < string > ;
3330 readonly selectedMethod : Method | undefined ;
3431 readonly selectedUsage : Usage | undefined ;
3532}
@@ -82,7 +79,7 @@ interface SelectedMethodChangedEvent {
8279
8380interface InProgressMethodsChangedEvent {
8481 readonly dbUri : string ;
85- readonly methods : InProgressMethods ;
82+ readonly methods : ReadonlySet < string > ;
8683}
8784
8885export class ModelingStore extends DisposableObject {
@@ -184,7 +181,7 @@ export class ModelingStore extends DisposableObject {
184181 modifiedMethodSignatures : new Set ( ) ,
185182 selectedMethod : undefined ,
186183 selectedUsage : undefined ,
187- inProgressMethods : { } ,
184+ inProgressMethods : new Set ( ) ,
188185 } ) ;
189186
190187 this . onDbOpenedEventEmitter . fire ( dbUri ) ;
@@ -425,28 +422,32 @@ export class ModelingStore extends DisposableObject {
425422 usage,
426423 modeledMethods : dbState . modeledMethods [ method . signature ] ?? [ ] ,
427424 isModified : dbState . modifiedMethodSignatures . has ( method . signature ) ,
428- isInProgress : hasInProgressMethodSignature (
429- dbState . inProgressMethods ,
430- method . signature ,
431- ) ,
425+ isInProgress : dbState . inProgressMethods . has ( method . signature ) ,
432426 } ) ;
433427 }
434428
435- public setInProgressMethods (
429+ public addInProgressMethods (
436430 dbItem : DatabaseItem ,
437- packageName : string ,
438431 inProgressMethods : string [ ] ,
439432 ) {
440- const dbState = this . getState ( dbItem ) ;
441-
442- dbState . inProgressMethods = {
443- ...dbState . inProgressMethods ,
444- [ packageName ] : inProgressMethods ,
445- } ;
433+ this . changeInProgressMethods ( dbItem , ( state ) => {
434+ state . inProgressMethods = new Set ( [
435+ ...state . inProgressMethods ,
436+ ...inProgressMethods ,
437+ ] ) ;
438+ } ) ;
439+ }
446440
447- this . onInProgressMethodsChangedEventEmitter . fire ( {
448- dbUri : dbItem . databaseUri . toString ( ) ,
449- methods : dbState . inProgressMethods ,
441+ public removeInProgressMethods (
442+ dbItem : DatabaseItem ,
443+ methodSignatures : string [ ] ,
444+ ) {
445+ this . changeInProgressMethods ( dbItem , ( state ) => {
446+ state . inProgressMethods = new Set (
447+ Array . from ( state . inProgressMethods ) . filter (
448+ ( s ) => ! methodSignatures . includes ( s ) ,
449+ ) ,
450+ ) ;
450451 } ) ;
451452 }
452453
@@ -469,10 +470,7 @@ export class ModelingStore extends DisposableObject {
469470 isModified : dbState . modifiedMethodSignatures . has (
470471 selectedMethod . signature ,
471472 ) ,
472- isInProgress : hasInProgressMethodSignature (
473- dbState . inProgressMethods ,
474- selectedMethod . signature ,
475- ) ,
473+ isInProgress : dbState . inProgressMethods . has ( selectedMethod . signature ) ,
476474 } ;
477475 }
478476
@@ -515,4 +513,18 @@ export class ModelingStore extends DisposableObject {
515513 isActiveDb : dbItem . databaseUri . toString ( ) === this . activeDb ,
516514 } ) ;
517515 }
516+
517+ private changeInProgressMethods (
518+ dbItem : DatabaseItem ,
519+ updateState : ( state : InternalDbModelingState ) => void ,
520+ ) {
521+ const state = this . getState ( dbItem ) ;
522+
523+ updateState ( state ) ;
524+
525+ this . onInProgressMethodsChangedEventEmitter . fire ( {
526+ dbUri : dbItem . databaseUri . toString ( ) ,
527+ methods : state . inProgressMethods ,
528+ } ) ;
529+ }
518530}
0 commit comments