feat(web): responsive Fields page (stacks on narrow) (#58)
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
import { expect, test } from "vitest";
|
||||
import { screen } from "@testing-library/react";
|
||||
|
||||
import { renderApp } from "../test/render";
|
||||
import { FieldsPage } from "./fields-page";
|
||||
|
||||
test("renders the field list and form in a responsive grid", async () => {
|
||||
const { container } = renderApp(<FieldsPage />);
|
||||
|
||||
// both panes are present (master list + detail form)
|
||||
expect(await screen.findByText(/fields/i)).toBeInTheDocument();
|
||||
|
||||
// responsive: single-column by default, two-column at lg
|
||||
const grid = container.querySelector("div.grid");
|
||||
expect(grid?.className).toContain("grid-cols-1");
|
||||
expect(grid?.className).toContain("lg:grid-cols-[20rem_1fr]");
|
||||
});
|
||||
@@ -20,8 +20,8 @@ export function FieldsPage() {
|
||||
return (
|
||||
<div className="flex h-full flex-col">
|
||||
<PageTitle className="px-4 pt-4 pb-2">{t("fields.title")}</PageTitle>
|
||||
<div className="grid flex-1 grid-cols-[20rem_1fr] overflow-hidden">
|
||||
<div className="overflow-hidden border-r">
|
||||
<div className="grid flex-1 grid-cols-1 overflow-auto lg:grid-cols-[20rem_1fr] lg:overflow-hidden">
|
||||
<div className="overflow-hidden border-b lg:border-r lg:border-b-0">
|
||||
<FieldList selectedKey={selected?.key ?? null} onSelect={setSelected} />
|
||||
</div>
|
||||
<div className="overflow-hidden">
|
||||
|
||||
Reference in New Issue
Block a user