Path: blob/main/src/vs/workbench/contrib/issue/electron-browser/nativeIssueFormService.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import { DisposableStore } from '../../../../base/common/lifecycle.js';6import { IMenuService } from '../../../../platform/actions/common/actions.js';7import { IContextKeyService } from '../../../../platform/contextkey/common/contextkey.js';8import { IDialogService } from '../../../../platform/dialogs/common/dialogs.js';9import { INativeEnvironmentService } from '../../../../platform/environment/common/environment.js';10import { IInstantiationService } from '../../../../platform/instantiation/common/instantiation.js';11import { ILogService } from '../../../../platform/log/common/log.js';12import { INativeHostService } from '../../../../platform/native/common/native.js';13import product from '../../../../platform/product/common/product.js';14import { IAuxiliaryWindowService } from '../../../services/auxiliaryWindow/browser/auxiliaryWindowService.js';15import { IHostService } from '../../../services/host/browser/host.js';16import { IssueFormService } from '../browser/issueFormService.js';17import { IIssueFormService, IssueReporterData } from '../common/issue.js';18import { IssueReporter } from './issueReporterService.js';1920export class NativeIssueFormService extends IssueFormService implements IIssueFormService {21private readonly store = new DisposableStore();2223constructor(24@IInstantiationService instantiationService: IInstantiationService,25@IAuxiliaryWindowService auxiliaryWindowService: IAuxiliaryWindowService,26@ILogService logService: ILogService,27@IDialogService dialogService: IDialogService,28@IMenuService menuService: IMenuService,29@IContextKeyService contextKeyService: IContextKeyService,30@IHostService hostService: IHostService,31@INativeHostService private readonly nativeHostService: INativeHostService,32@INativeEnvironmentService private readonly environmentService: INativeEnvironmentService,) {33super(instantiationService, auxiliaryWindowService, menuService, contextKeyService, logService, dialogService, hostService);34}3536// override to grab platform info37override async openReporter(data: IssueReporterData): Promise<void> {38if (this.hasToReload(data)) {39return;40}4142const bounds = await this.nativeHostService.getActiveWindowPosition();43if (!bounds) {44return;45}4647await this.openAuxIssueReporter(data, bounds);4849// Get platform information50const { arch, release, type } = await this.nativeHostService.getOSProperties();51this.arch = arch;52this.release = release;53this.type = type;5455// create issue reporter and instantiate56if (this.issueReporterWindow) {57const issueReporter = this.store.add(this.instantiationService.createInstance(IssueReporter, !!this.environmentService.disableExtensions, data, { type: this.type, arch: this.arch, release: this.release }, product, this.issueReporterWindow));58issueReporter.render();59} else {60this.store.dispose();61}62}63}646566