feat: sidepanel now refreshes on subsequent plugin runs if still open (#153)

This commit is contained in:
Tanner
2025-03-05 18:52:45 -08:00
committed by GitHub
parent 1c9f340add
commit 38852620d2
3 changed files with 24 additions and 0 deletions

View File

@@ -60,6 +60,16 @@ export default function SidePanel(): ReactElement {
setStarted(true);
break;
}
case SidePanelActionTypes.is_panel_open: {
return { isOpen: true };
}
case SidePanelActionTypes.reset_panel: {
setConfig(null);
setHash('');
setHex('');
setStarted(false);
break;
}
}
});
}, []);

View File

@@ -5,4 +5,6 @@ export enum SidePanelActionTypes {
run_p2p_plugin_request = 'sidePanel/run_p2p_plugin_request',
run_p2p_plugin_response = 'sidePanel/run_p2p_plugin_response',
start_p2p_plugin = 'sidePanel/start_p2p_plugin',
is_panel_open = 'sidePanel/is_panel_open',
reset_panel = 'sidePanel/reset_panel',
}

View File

@@ -23,6 +23,18 @@ export const openSidePanel = async () => {
const { promise, resolve, reject } = deferredPromise();
try {
const response = await browser.runtime.sendMessage({
type: SidePanelActionTypes.is_panel_open,
});
if (response?.isOpen) {
await browser.runtime.sendMessage({
type: SidePanelActionTypes.reset_panel,
});
resolve();
return promise;
}
const [tab] = await browser.tabs.query({
active: true,
currentWindow: true,