fix(web): правки применяются сразу и не сбрасывают вкладку
Вкладка «Редактирование» больше не переключается на «Сведения» при обновлении того же фото: временное состояние панели сбрасывается только при смене фото. Правки теперь рендерятся без ожидания тика воркера: сервис будит воркер сразу после постановки задачи, а уведомление о готовых вариантах приходит до кодирования полноразмерной версии. Задержка между сохранением правок и появлением отредактированной версии — около 0.25 с вместо нескольких секунд.
This commit is contained in:
@@ -33,6 +33,8 @@
|
||||
const saved = $derived(readEditParams(photo));
|
||||
const hasEdits = $derived(!isEmptyEditParams(saved));
|
||||
const dirty = $derived(JSON.stringify(params) !== JSON.stringify(saved));
|
||||
// Правки сохранены, но отредактированная версия ещё рендерится.
|
||||
const rendering = $derived(hasEdits && !photo.edit_preview_url);
|
||||
|
||||
// При смене фото параметры берутся из метаданных.
|
||||
let lastPhotoId = '';
|
||||
@@ -332,7 +334,9 @@
|
||||
</div>
|
||||
|
||||
{#if busy}
|
||||
<p class="text-text-subtle text-xs">Сохраняем и рендерим…</p>
|
||||
<p class="text-text-subtle text-xs">Сохраняем…</p>
|
||||
{:else if rendering}
|
||||
<p class="text-text-subtle text-xs">Рендерим правки…</p>
|
||||
{/if}
|
||||
{#if error}
|
||||
<p class="text-danger text-xs">{error}</p>
|
||||
|
||||
@@ -64,9 +64,13 @@
|
||||
)
|
||||
);
|
||||
|
||||
// Сброс временного состояния только при смене фото: обновления того же
|
||||
// фото (например, отрендеренные правки) не должны сбрасывать вкладку.
|
||||
let lastPhotoId = '';
|
||||
$effect(() => {
|
||||
// сброс временного состояния при смене фото
|
||||
photo.id;
|
||||
const id = photo.id;
|
||||
if (id === lastPhotoId) return;
|
||||
lastPhotoId = id;
|
||||
editingName = false;
|
||||
nameError = '';
|
||||
showAll = false;
|
||||
|
||||
Reference in New Issue
Block a user