UNPKG

chrome-devtools-frontend

Version:
37 lines (32 loc) 1.35 kB
// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import * as Common from '../common/common.js'; // eslint-disable-line no-unused-vars import * as SDK from '../sdk/sdk.js'; import * as UI from '../ui/ui.js'; import {IssuesPane} from './IssuesPane.js'; // eslint-disable-line no-unused-vars let issueRevealerInstance: IssueRevealer; export class IssueRevealer implements Common.Revealer.Revealer { static instance(opts: {forceNew: boolean|null} = {forceNew: null}): IssueRevealer { const {forceNew} = opts; if (!issueRevealerInstance || forceNew) { issueRevealerInstance = new IssueRevealer(); } return issueRevealerInstance; } async reveal(issue: Object): Promise<void> { if (!(issue instanceof SDK.Issue.Issue)) { throw new Error('Internal error: not a issue'); } await UI.ViewManager.ViewManager.instance().showView('issues-pane'); const view = UI.ViewManager.ViewManager.instance().view('issues-pane'); if (view) { const issuesPane = await view.widget(); if (issuesPane instanceof IssuesPane) { issuesPane.revealByCode(issue.code()); } else { throw new Error('Expected issues pane to be an instance of IssuesPane'); } } } }