Проблема
Админка → Настройки → вкладка «Опции»: удаление опции в сетке показывает два диалога подтверждения. Тот же класс, что #538 — общая шина PrimeVue ConfirmationEventBus + несколько ungrouped <ConfirmDialog> в одном приложении. Живой инстанс #539.
Причина
OptionsAndGroupsTabs рендерит обе под-панели без lazy → OptionsGrid и OptionGroupsGrid смонтированы одновременно, у каждого ungrouped <ConfirmDialog> (OptionsGrid.vue:345, OptionGroupsGrid.vue:215). Ungrouped confirm.require при удалении ловят оба диалога → двойной confirm. Воспроизводится сразу при открытии вкладки.
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) — отдельно.
Воспроизведение
- Настройки → Опции.
- Удалить любую опцию → появляются два одинаковых confirm.
Затрагивает beta.
Проблема
Админка → Настройки → вкладка «Опции»: удаление опции в сетке показывает два диалога подтверждения. Тот же класс, что #538 — общая шина PrimeVue
ConfirmationEventBus+ несколько ungrouped<ConfirmDialog>в одном приложении. Живой инстанс #539.Причина
OptionsAndGroupsTabsрендерит обе под-панели безlazy→OptionsGridиOptionGroupsGridсмонтированы одновременно, у каждого ungrouped<ConfirmDialog>(OptionsGrid.vue:345,OptionGroupsGrid.vue:215). Ungroupedconfirm.requireпри удалении ловят оба диалога → двойной confirm. Воспроизводится сразу при открытии вкладки.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) — отдельно.
Воспроизведение
Затрагивает
beta.