mirror of
https://github.com/getpaseo/paseo.git
synced 2026-07-29 12:01:31 +00:00
fix(app): preserve UI fonts in portaled overlays
The web UI font rule only targeted the app root, so portaled content fell back to the default font. Extend the rule to the shared overlay root and cover it with a browser regression test.
This commit is contained in:
@@ -90,6 +90,27 @@ test.describe("CodeMirror workspace file editing", () => {
|
|||||||
await expect(selection).toHaveCSS("background-color", "rgba(255, 255, 255, 0.2)");
|
await expect(selection).toHaveCSS("background-color", "rgba(255, 255, 255, 0.2)");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("applies the interface font to portaled tooltips", async ({ page, withWorkspace }) => {
|
||||||
|
await page.addInitScript(() => {
|
||||||
|
localStorage.setItem("@paseo:app-settings", JSON.stringify({ uiFontFamily: "monospace" }));
|
||||||
|
});
|
||||||
|
const workspace = await withWorkspace({ prefix: "file-tooltip-font-" });
|
||||||
|
const relativePath = "tooltip-font.txt";
|
||||||
|
await writeFile(path.join(workspace.repoPath, relativePath), "tooltip font\n", "utf8");
|
||||||
|
await workspace.navigateTo();
|
||||||
|
await openFileExplorer(page);
|
||||||
|
await openFileFromExplorer(page, relativePath);
|
||||||
|
await expectFileTabOpen(page, relativePath);
|
||||||
|
|
||||||
|
await page.getByTestId(`workspace-tab-file_${relativePath}`).first().hover();
|
||||||
|
|
||||||
|
await expect(
|
||||||
|
page
|
||||||
|
.getByTestId(`workspace-tab-tooltip-file_${relativePath}`)
|
||||||
|
.getByText(relativePath, { exact: true }),
|
||||||
|
).toHaveCSS("font-family", "monospace");
|
||||||
|
});
|
||||||
|
|
||||||
test("autosaves, saves immediately, resolves conflicts, and restores live updates after reconnect", async ({
|
test("autosaves, saves immediately, resolves conflicts, and restores live updates after reconnect", async ({
|
||||||
page,
|
page,
|
||||||
withWorkspace,
|
withWorkspace,
|
||||||
|
|||||||
@@ -8,7 +8,8 @@
|
|||||||
// on stylesheet order. Code/diff/terminal surfaces carry `data-pmono` (and have their
|
// on stylesheet order. Code/diff/terminal surfaces carry `data-pmono` (and have their
|
||||||
// subtree excluded via `:not([data-pmono] *)`) so they keep their monospace font.
|
// subtree excluded via `:not([data-pmono] *)`) so they keep their monospace font.
|
||||||
const STYLE_ID = "paseo-ui-font";
|
const STYLE_ID = "paseo-ui-font";
|
||||||
const RULE = "#root *:not([data-pmono]):not([data-pmono] *){font-family:var(--paseo-ui-font);}";
|
const RULE =
|
||||||
|
":is(#root, #overlay-root) *:not([data-pmono]):not([data-pmono] *){font-family:var(--paseo-ui-font);}";
|
||||||
|
|
||||||
export function applyRootUiFont(uiFontStack: string): void {
|
export function applyRootUiFont(uiFontStack: string): void {
|
||||||
if (typeof document === "undefined") return;
|
if (typeof document === "undefined") return;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Marker for code / diff / monospace surfaces. On web, the app-wide interface-font
|
// Marker for code / diff / monospace surfaces. On web, the app-wide interface-font
|
||||||
// rule (see screens/settings/appearance/apply-root-font.web.ts) targets
|
// rule (see screens/settings/appearance/apply-root-font.web.ts) targets
|
||||||
// `#root *:not([data-pmono]):not([data-pmono] *)`, so tagging a code container with
|
// app and overlay roots while excluding `[data-pmono]` subtrees, so tagging a code
|
||||||
// this dataSet excludes it and its subtree — they keep their monospace font. On
|
// container with this dataSet keeps its monospace font. On native it renders nothing
|
||||||
// native it renders nothing and is harmless. Use a shared stable reference so it
|
// and is harmless. Use a shared stable reference so it doesn't trip the react-perf
|
||||||
// doesn't trip the react-perf "new object as prop" rule.
|
// "new object as prop" rule.
|
||||||
export const CODE_SURFACE_DATASET = { pmono: "" } as const;
|
export const CODE_SURFACE_DATASET = { pmono: "" } as const;
|
||||||
|
|||||||
Reference in New Issue
Block a user