feat: Dokumenten-Menü neu — Brotkrume im App-Kopf, Stand-Knöpfe im Editor-Kopf (D81)
Der Dokument-Wähler steht jetzt als gerahmter Chip "Werkbaum › Name" im App-Kopf und ist damit auch auf dem Telefon aus beiden Bereichen erreichbar; sein Name übernimmt dort die Untertitel-Zeile. Das Menü gruppiert nach Dokumentart (docKind, headless getestet), trägt Umbenennen/Löschen/ Wiederherstellen als Symbole je Zeile und scrollt als Ganzes, statt auf kleinen Bildschirmen abgeschnitten zu werden. Die Editor-Titelzeile heißt wieder "Text-Editor" und trägt die Stand-Funktionen des aktiven Dokuments: Speichern (Strg+S), Stand sichern, frühere Stände, Neu laden (Original/URL/ Datei) und den neuen kurzen Teilen-Knopf (vorher "Auf den Server legen" im Menü). subtitleShort ist ersatzlos ausgebaut. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
fdca934cf0
commit
4be6ecb984
@@ -1,5 +1,5 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { docParam, docSearch, LIVE_PARAM, SOURCE_PARAM } from '../src/docurl.js';
|
||||
import { docParam, docSearch, docKind, LIVE_PARAM, SOURCE_PARAM } from '../src/docurl.js';
|
||||
|
||||
const LIVE = 'live:https://werkbaum.example/api/v1/documents/44753df1';
|
||||
const URLDOC = 'url:https://example.org/plan.werkbaum';
|
||||
@@ -80,3 +80,27 @@ describe('docSearch — die Adresszeile folgt dem aktiven Dokument', () => {
|
||||
expect(docSearch('', 'example')).toBe('');
|
||||
});
|
||||
});
|
||||
|
||||
describe('docKind — welche Gruppe des Dokumenten-Menüs? (D81)', () => {
|
||||
const SHIPPED = ['example', 'werkbaum'];
|
||||
|
||||
it('mitgelieferte Dokumente erkennt die feste id', () => {
|
||||
expect(docKind('example', SHIPPED)).toBe('shipped');
|
||||
expect(docKind('werkbaum', SHIPPED)).toBe('shipped');
|
||||
});
|
||||
|
||||
it('Server- und URL-Dokumente sind Quellen von außen', () => {
|
||||
expect(docKind(LIVE, SHIPPED)).toBe('server');
|
||||
expect(docKind(URLDOC, SHIPPED)).toBe('url');
|
||||
});
|
||||
|
||||
it('alles andere ist ein eigenes Dokument — auch aus Dateien geöffnete', () => {
|
||||
expect(docKind('k3f9x1', SHIPPED)).toBe('own');
|
||||
expect(docKind('Unbenannt', SHIPPED)).toBe('own');
|
||||
});
|
||||
|
||||
it('verträgt fehlende Argumente, ohne zu werfen', () => {
|
||||
expect(docKind(null, SHIPPED)).toBe('own');
|
||||
expect(docKind('example')).toBe('own'); /* ohne Liste ist nichts mitgeliefert */
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user