Add favicon and update configuration files

This commit is contained in:
2026-03-31 01:36:05 +02:00
parent 4a260c4ebc
commit 03ee9fab5a
4 changed files with 24 additions and 8 deletions

View File

@@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<title>WebEditor3D</title>
</head>
<body>

View File

@@ -2,6 +2,7 @@ import { defineConfig, devices } from "@playwright/test";
export default defineConfig({
testDir: "./tests/e2e",
testMatch: ["**/*.e2e.ts"],
timeout: 30_000,
expect: {
timeout: 5_000

6
public/favicon.svg Normal file
View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
<rect width="64" height="64" rx="14" fill="#181d24" />
<path d="M14 20 32 12l18 8v24l-18 8-18-8Z" fill="#cf7b42" />
<path d="M32 12v40" stroke="#181d24" stroke-width="4" />
<path d="M14 20l18 8 18-8" stroke="#181d24" stroke-width="4" fill="none" />
</svg>

After

Width:  |  Height:  |  Size: 325 B

View File

@@ -37,6 +37,7 @@ export class EditorStore {
private readonly storage: KeyValueStorage | null;
private readonly storageKey: string;
private lastCommandLabel: string | null = null;
private snapshot: EditorStoreState;
private readonly commandContext: CommandContext = {
getDocument: () => this.document,
@@ -57,6 +58,7 @@ export class EditorStore {
this.document = options.initialDocument ?? createEmptySceneDocument();
this.storage = options.storage ?? null;
this.storageKey = options.storageKey ?? DEFAULT_SCENE_DRAFT_STORAGE_KEY;
this.snapshot = this.createSnapshot();
}
subscribe = (listener: EditorStoreListener) => {
@@ -67,14 +69,7 @@ export class EditorStore {
};
};
getState = (): EditorStoreState => ({
document: this.document,
selection: this.selection,
toolMode: this.toolMode,
canUndo: this.history.canUndo(),
canRedo: this.history.canRedo(),
lastCommandLabel: this.lastCommandLabel
});
getState = (): EditorStoreState => this.snapshot;
setToolMode(toolMode: ToolMode) {
if (this.toolMode === toolMode) {
@@ -168,10 +163,23 @@ export class EditorStore {
}
private emit() {
this.snapshot = this.createSnapshot();
for (const listener of this.listeners) {
listener();
}
}
private createSnapshot(): EditorStoreState {
return {
document: this.document,
selection: this.selection,
toolMode: this.toolMode,
canUndo: this.history.canUndo(),
canRedo: this.history.canRedo(),
lastCommandLabel: this.lastCommandLabel
};
}
}
export function createEditorStore(options?: EditorStoreOptions): EditorStore {