fix(web): права в шапке сервера обновляются после выдачи роли
По MEMBER_UPDATE/ROLE_* клиент перечитывал участников, роли и комнаты, но
не сводку сервера: `my_permissions` в сторе сессии оставались прежними, и
кнопки управления (🔗 приглашение, ⚙ настройки, + комната) появлялись
только после перезагрузки. Матрица 11.6 требует, чтобы права сразу меняли
доступные действия (AGENT.md 11.6).
- в ветках `MEMBER_UPDATE`/`MEMBER_REMOVE` и `ROLE_*` вызывается
`addGuildFromRest` — сводка сервера перечитывается и мержится;
- vitest: кнопки появляются по событию (тест падает без правки).
This commit is contained in:
@@ -295,6 +295,9 @@ export function dispatchGatewayEvent(event: GatewayDispatch): void {
|
||||
if (guildId !== null) {
|
||||
void invalidateMembershipQueries(guildId);
|
||||
session.scheduleGuildChannelsReload(guildId);
|
||||
// Свои права после выдачи роли обновляет только сводка сервера: без
|
||||
// неё кнопки управления в шапке появлялись лишь после перезагрузки.
|
||||
void addGuildFromRest(guildId);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -305,6 +308,8 @@ export function dispatchGatewayEvent(event: GatewayDispatch): void {
|
||||
if (role !== null) {
|
||||
void invalidateMembershipQueries(role.guild_id);
|
||||
session.scheduleGuildChannelsReload(role.guild_id);
|
||||
// Права роли могли измениться и у меня: обновляем сводку сервера.
|
||||
void addGuildFromRest(role.guild_id);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user