mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
fix: touched by step flag issue
This commit is contained in:
@@ -58,12 +58,12 @@
|
|||||||
`$derived.by`; ручной сброс `maskResults = {}` в `init()` удалён — derived
|
`$derived.by`; ручной сброс `maskResults = {}` в `init()` удалён — derived
|
||||||
пересчитывается сам по смене `steps`/`source`/`maskOnKeys`.
|
пересчитывается сам по смене `steps`/`source`/`maskOnKeys`.
|
||||||
|
|
||||||
### M2. `init()` в эффекте не сбрасывает часть состояния
|
### M2. `init()` не сбрасывал часть состояния — СДЕЛАНО (2026-10)
|
||||||
|
|
||||||
`SchemaToolView.svelte:514-516` + :218-254: `$effect(() => init())` —
|
`SchemaToolView.svelte`: `init()` теперь очищает `touchedByStep` и `lastAxis` —
|
||||||
синхронизация состояния по смене пропсов (анти-паттерн из документации Svelte
|
метки от ключей шагов прошлого хоста больше не протекают в новую цепочку.
|
||||||
5). При этом `touchedByStep` (:105) и `lastAxis` (:107) в `init()` не
|
Переработка самого паттерна `$effect(() => init())` — часть H1, отдельно не
|
||||||
сбрасываются — при смене хоста остаются метки от прежних ключей шагов.
|
делалась.
|
||||||
|
|
||||||
### M3. `SchemaPreview.svelte` — интерфейс из ~40 пропсов
|
### M3. `SchemaPreview.svelte` — интерфейс из ~40 пропсов
|
||||||
|
|
||||||
|
|||||||
@@ -275,6 +275,10 @@
|
|||||||
verdictVars = undefined;
|
verdictVars = undefined;
|
||||||
displayError = null;
|
displayError = null;
|
||||||
maskOnKeys.clear();
|
maskOnKeys.clear();
|
||||||
|
// Marks are keyed by step.key from the previous host; keep them and
|
||||||
|
// stale keys leak into the new chain's fields.
|
||||||
|
touchedByStep.clear();
|
||||||
|
for (const k of Object.keys(lastAxis)) delete lastAxis[k];
|
||||||
}
|
}
|
||||||
|
|
||||||
function setStepValue(
|
function setStepValue(
|
||||||
|
|||||||
Reference in New Issue
Block a user