@@ -188,10 +188,9 @@ export function registerRequestCallbacks(state: BackState, init: () => Promise<v
188188
189189 state . socketServer . register ( BackIn . GET_RENDERER_EXTENSION_INFO , async ( ) => {
190190 return {
191- devScripts : await state . extensionsService . getContributions ( 'devScripts' ) ,
192- contextButtons : await state . extensionsService . getContributions ( 'contextButtons' ) ,
193- curationTemplates : await state . extensionsService . getContributions ( 'curationTemplates' ) ,
194- extConfigs : await state . extensionsService . getContributions ( 'configuration' ) ,
191+ contextButtons : await state . extensionsService . getEnabledContributions ( 'contextButtons' , state . preferences . disabledExtensions ) ,
192+ curationTemplates : await state . extensionsService . getEnabledContributions ( 'curationTemplates' , state . preferences . disabledExtensions ) ,
193+ extConfigs : await state . extensionsService . getEnabledContributions ( 'configuration' , state . preferences . disabledExtensions ) ,
195194 extConfig : state . extConfig ,
196195 extensions : ( await state . extensionsService . getExtensions ( ) ) . map ( e => {
197196 return {
@@ -1439,23 +1438,24 @@ export function registerRequestCallbacks(state: BackState, init: () => Promise<v
14391438 catch ( error : any ) { log . error ( 'Launcher' , error ) ; }
14401439 } ) ;
14411440
1442- state . socketServer . register ( BackIn . SET_EXTENSION_ENABLED , async ( event , extId , newState ) => {
1441+ state . socketServer . register ( BackIn . SET_EXTENSION_ENABLED , async ( event , extId , enable ) => {
14431442 const isEnabled = ! state . preferences . disabledExtensions . includes ( extId ) ;
1444- if ( newState !== isEnabled ) {
1445- if ( newState ) {
1446- // Enable ext
1447- state . preferences . disabledExtensions = state . preferences . disabledExtensions . filter ( c => c !== extId ) ;
1448- await state . extensionsService . loadExtension ( extId ) ;
1449- } else {
1450- // Disable ext
1451- state . preferences . disabledExtensions . push ( extId ) ;
1452- await state . extensionsService . unloadExtension ( extId ) ;
1453- }
1443+ if ( enable !== isEnabled && enable ) {
1444+ // Enable ext
1445+ state . preferences . disabledExtensions = state . preferences . disabledExtensions . filter ( c => c !== extId ) ;
1446+ await state . extensionsService . loadExtension ( extId ) ;
1447+ state . prefsQueue . push ( ( ) => {
1448+ PreferencesFile . saveFile ( path . join ( state . config . flashpointPath , PREFERENCES_FILENAME ) , state . preferences , state ) ;
1449+ } ) ;
1450+ } else if ( enable !== isEnabled && ! enable ) {
1451+ // Disable ext
1452+ state . preferences . disabledExtensions . push ( extId ) ;
1453+ await state . extensionsService . unloadExtension ( extId ) ;
14541454 state . prefsQueue . push ( ( ) => {
14551455 PreferencesFile . saveFile ( path . join ( state . config . flashpointPath , PREFERENCES_FILENAME ) , state . preferences , state ) ;
14561456 } ) ;
14571457 }
1458- state . socketServer . broadcast ( BackOut . UPDATE_EXTENSION_STATE , extId , newState ) ;
1458+ state . socketServer . broadcast ( BackOut . UPDATE_EXTENSION_STATE , extId , enable ) ;
14591459 } ) ;
14601460
14611461 state . socketServer . register ( BackIn . UPDATE_PREFERENCES , async ( event , data ) => {
@@ -2731,7 +2731,7 @@ async function runCommand(state: BackState, command: string, args: any[] = []):
27312731 * @param state Current back state
27322732 */
27332733export async function getProviders ( state : BackState ) : Promise < AppProvider [ ] > {
2734- return state . extensionsService . getContributions ( 'applications' )
2734+ return state . extensionsService . getEnabledContributions ( 'applications' , state . preferences . disabledExtensions )
27352735 . then ( contributions => {
27362736 return contributions . map ( c => {
27372737 const apps = c . value ;
0 commit comments