microsoft / azure-devops-extension-sample

Sample web extension for Azure DevOps
MIT License
235 stars 154 forks source link

How to close the dialog box from IHostPageLayoutSercvice #146

Open AlekhyaYalla opened 1 year ago

AlekhyaYalla commented 1 year ago

Hello team, I'm trying to create a dialog box. Once I have created, how do I close it programmatically? I'm opening the dialog box with below code.

typescript```

  const dialogSVC: IHostPageLayoutService = await getService<IHostPageLayoutService>(
    CommonServiceIds.HostPageLayoutService
);

     dialogSVC.openMessageDialog(message, {
             lightDismiss: false, showCancel: _showCancel, title: "Codespaces Extension"});


Any method available to close the opened dialog box? 
karelkral commented 1 year ago

IMO, you cannot close the dialog programmatically. It closes when the user click the button.

DebasishBlockchain commented 9 months ago

To close the opened dialog box programmatically using the IHostPageLayoutService in a Visual Studio Code extension, you can use the closeDialog method provided by the service. Here's how you can do it:

import { IHostPageLayoutService } from 'vs/workbench/services/host/browser/hostPageLayoutService';
import { CommonServiceIds, IInstantiationService } from 'vs/platform/instantiation/common/instantiation';

// ...

// Get the IHostPageLayoutService
const dialogSVC: IHostPageLayoutService = await getService<IHostPageLayoutService>(
  CommonServiceIds.HostPageLayoutService
);

// Open the dialog
const dialog = dialogSVC.openMessageDialog(message, {
  lightDismiss: false,
  showCancel: _showCancel,
  title: "Codespaces Extension"
});

// Close the dialog programmatically (for example, when a button is clicked)
// You can call this method when you want to close the dialog.
dialog.close();

In the code above, after opening the dialog with dialogSVC.openMessageDialog(), you can use the close() method on the dialog object to close the dialog programmatically. You can call this method when you want to close the dialog, such as when a button is clicked or when a specific condition is met.

This will allow you to control the opening and closing of the dialog box within your extension.