From 6b0639531403f043c80babc24aa01cd22279a699 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Tue, 27 Oct 2026 18:12:34 +0400 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B8=D0=BA=D0=B8:=20=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=BA=D0=B8=20=D0=B4=D0=B5=D1=80=D0=B5=D0=B2=D0=B0=20?= =?UTF-8?q?=D0=BD=D0=B5=20=D1=81=D0=B6=D0=B8=D0=BC=D0=B0=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F,=20=D0=B4=D0=BB=D0=B8=D0=BD=D0=BD=D1=8B=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D0=B5=D0=B7=D0=B0=D1=8E=D1=82=20(#133)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .wiki-tree — flex-колонка с max-height:70vh; при переполнении flex сжимал .wiki-tree__item до min-height в одну строку, и перенесённый заголовок вылезал на соседние узлы. flex:none — высота строки следует за текстом. Co-Authored-By: Claude Opus 5.5 --- web/src/modules/wiki/Tree.test.tsx | 10 ++++++++++ web/src/modules/wiki/wiki.css | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/web/src/modules/wiki/Tree.test.tsx b/web/src/modules/wiki/Tree.test.tsx index 390d876..1168bf9 100644 --- a/web/src/modules/wiki/Tree.test.tsx +++ b/web/src/modules/wiki/Tree.test.tsx @@ -1,5 +1,7 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; +import { readFileSync } from "node:fs"; +import { resolve } from "node:path"; import { describe, expect, it, vi } from "vitest"; import type { WikiNode } from "./api/queries.ts"; import { Tree } from "./Tree.tsx"; @@ -85,3 +87,11 @@ describe("Tree", () => { expect(item("B")).toHaveAttribute("aria-expanded", "true"); }); }); + +describe("дерево: многострочные названия (#133)", () => { + it("строка дерева не сжимается в переполненной колонке — перенесённый текст не налезает на соседей", () => { + const css = readFileSync(resolve(__dirname, "wiki.css"), "utf8"); + const rule = css.match(/\.wiki-tree__item\{[^}]*\}/)?.[0] ?? ""; + expect(rule).toMatch(/flex:none|flex-shrink:0/); + }); +}); diff --git a/web/src/modules/wiki/wiki.css b/web/src/modules/wiki/wiki.css index 25ed012..35f6e34 100644 --- a/web/src/modules/wiki/wiki.css +++ b/web/src/modules/wiki/wiki.css @@ -12,7 +12,7 @@ /* дерево */ .wiki-tree{display:flex;flex-direction:column;gap:var(--space-1);max-height:70vh;overflow:auto} -.wiki-tree__item{display:flex;align-items:center;gap:var(--space-1);min-height:var(--control-h);padding-inline-end:var(--space-2);border-radius:var(--radius-md); +.wiki-tree__item{flex:none;display:flex;align-items:center;gap:var(--space-1);min-height:var(--control-h);padding-inline-end:var(--space-2);border-radius:var(--radius-md); font-size:var(--fs-body);line-height:var(--lh-body);color:var(--color-text-primary);cursor:pointer} .wiki-tree__item:hover{background:var(--color-bg-hover)} .wiki-tree__item.is-selected{background:var(--color-bg-selected);color:var(--color-action-primary);font-weight:600}