Skip to content

Настройки: двойной confirm удаления — ungrouped ConfirmDialog во всех 7 гридах вкладок (инстанс #539) #548

Description

@biz87

Проблема

Админка → Настройки → вкладка «Опции»: удаление опции в сетке показывает два диалога подтверждения. Тот же класс, что #538 — общая шина PrimeVue ConfirmationEventBus + несколько ungrouped <ConfirmDialog> в одном приложении. Живой инстанс #539.

Причина

  1. OptionsAndGroupsTabs рендерит обе под-панели без lazyOptionsGrid и OptionGroupsGrid смонтированы одновременно, у каждого ungrouped <ConfirmDialog> (OptionsGrid.vue:345, OptionGroupsGrid.vue:215). Ungrouped confirm.require при удалении ловят оба диалога → двойной confirm. Воспроизводится сразу при открытии вкладки.
  2. SettingsPage держит посещённые вкладки смонтированными (<component :is v-if="visited[tab.id]" />, SettingsPage.vue:133). Значит диалоги ранее открытых вкладок тоже висят на шине — потенциально тройной+ confirm.

Все 7 гридов вкладок Настроек — ungrouped: DeliveriesGrid, PaymentsGrid, StatusesGrid, VendorsGrid, LinksGrid, OptionsGrid, OptionGroupsGrid.

Решение

Namespace каждому гриду вкладок Настроек — уникальный group на <ConfirmDialog> и во все его confirm.require (паттерн из #538; для гридов на ActionsColumn/useSelection — через уже готовый проп/опцию confirmGroup из #540). Тогда require каждого грида таргетит только свой диалог, сколько бы вкладок ни было смонтировано.

Покрывает страницу Настроек целиком. Остаток #539 (product-tabs: галерея/связи + дубли Toast) — отдельно.

Воспроизведение

  1. Настройки → Опции.
  2. Удалить любую опцию → появляются два одинаковых confirm.

Затрагивает beta.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions