File size: 675 Bytes
4d70170 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import { isChrome } from '@vue-devtools/shared-utils'
let panelShown = !isChrome
let pendingAction: (() => void | Promise<void>) | null = null
if (isChrome) {
chrome.runtime.onMessage.addListener((request) => {
if (request === 'vue-panel-shown') {
onPanelShown()
}
else if (request === 'vue-panel-hidden') {
onPanelHidden()
}
})
}
export function ensurePaneShown(cb: () => void | Promise<void>) {
if (panelShown) {
cb()
}
else {
pendingAction = cb
}
}
function onPanelShown() {
panelShown = true
if (pendingAction) {
pendingAction()
pendingAction = null
}
}
function onPanelHidden() {
panelShown = false
}
|