Skip to content

Commit 0ad58cc

Browse files
committed
[frontend] focus devtools on element where inspect was clicked
1 parent cb37177 commit 0ad58cc

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

frontend/src/Tab.tsx

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { createState } from "dreamland/core";
1+
import { createDelegate, createState } from "dreamland/core";
22
import { StatefulClass } from "./StatefulClass";
33
import { browser, scramjet } from "./main";
44
import {
@@ -10,6 +10,8 @@ import { NewTab } from "./pages/NewTab";
1010
import { Playground } from "./pages/Playground";
1111
import { createMenu } from "./components/Menu";
1212

13+
const requestInspectElement = createDelegate<[HTMLElement, Tab]>();
14+
1315
let id = 0;
1416
export class Tab extends StatefulClass {
1517
id: number;
@@ -33,7 +35,7 @@ export class Tab extends StatefulClass {
3335

3436
internalpage: HTMLElement | null;
3537

36-
devtoolsOpen: boolean = true;
38+
devtoolsOpen: boolean = false;
3739
devtoolsWidth = 200;
3840

3941
constructor(public url: URL = new URL("puter://newtab")) {
@@ -178,6 +180,17 @@ function injectDevtools(client: ScramjetClient, tab: Tab) {
178180
},
179181
};
180182
client.global.document.head.appendChild(devtoolsScript);
183+
requestInspectElement.listen(([elm, t]) => {
184+
if (t != tab) return;
185+
// @ts-expect-error
186+
client.global.window.connector1.default.trigger(
187+
"Overlay.inspectNodeRequested",
188+
{
189+
// @ts-expect-error
190+
backendNodeId: client.global.pushNodesToFrontend(elm),
191+
}
192+
);
193+
});
181194

182195
// unproxied version
183196
// const devtoolsUrl = "/chi";
@@ -323,7 +336,8 @@ function pageContextItems(client: ScramjetClient, tab: Tab, e: MouseEvent) {
323336
{
324337
label: "Inspect",
325338
action: () => {
326-
tab.devtoolsOpen = !tab.devtoolsOpen;
339+
tab.devtoolsOpen = true;
340+
if (e.target) requestInspectElement([e.target as HTMLElement, tab]);
327341
},
328342
},
329343
];

frontend/src/components/Shell.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ Shell.style = css`
116116
iframe {
117117
flex: 1;
118118
height: 100%;
119+
width: 100%;
119120
border: none;
120121
display: none;
121122
}

0 commit comments

Comments
 (0)