From b498f45299c2a9d0474f287274e09f4e395f8af6 Mon Sep 17 00:00:00 2001 From: Jacek Chmielewski Date: Tue, 17 Mar 2026 07:47:30 +0100 Subject: [PATCH 1/4] fix cache invalidation for mfa disable action --- web/src/pages/UsersOverviewPage/UsersTable.tsx | 8 +++++++- .../components/ProfileAuthCard/ProfileAuthCard.tsx | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx index 5066f7bcc2..d2bb253905 100644 --- a/web/src/pages/UsersOverviewPage/UsersTable.tsx +++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx @@ -427,7 +427,13 @@ export const UsersTable = () => { name: rowData.name, }), actionPromise: () => api.user.disableMfa(rowData.username), - invalidateKeys: [['user-overview'], ['user'], ['session-info'], ['me']], + invalidateKeys: [ + ['user-overview'], + ['user'], + ['session-info'], + ['me'], + ['activity-log'], + ], submitProps: { text: m.users_row_menu_disable_mfa(), variant: 'critical', diff --git a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDetailsTab/components/ProfileAuthCard/ProfileAuthCard.tsx b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDetailsTab/components/ProfileAuthCard/ProfileAuthCard.tsx index a700e61d0d..5e0760fcbe 100644 --- a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDetailsTab/components/ProfileAuthCard/ProfileAuthCard.tsx +++ b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDetailsTab/components/ProfileAuthCard/ProfileAuthCard.tsx @@ -48,6 +48,7 @@ export const ProfileAuthCard = () => { res.push(['me']); } res.push(['user', user.username]); + res.push(['activity-log']); return { invalidate: res, }; From 43812005e7b1ec5b1922a0803f726c1efaf9b1ba Mon Sep 17 00:00:00 2001 From: Jacek Chmielewski Date: Tue, 17 Mar 2026 08:34:27 +0100 Subject: [PATCH 2/4] use Snackbar.success consistently --- .../DeleteAliasDestinationConfirmModal.tsx | 4 ++-- web/src/pages/CEAliasPage/CEAliasPage.tsx | 4 ++-- web/src/pages/CEDestinationPage/CEDestinationPage.tsx | 4 ++-- web/src/pages/CERulePage/CERulePage.tsx | 4 ++-- web/src/pages/EditEdgePage/EditEdgePage.tsx | 4 ++-- web/src/pages/EditGatewayPage/EditGatewayPage.tsx | 4 ++-- .../pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx | 2 +- .../LocationsMigrationWizardPage.tsx | 2 +- .../modals/DeleteGatewayModal/DeleteGatewayModal.tsx | 2 +- .../modals/DeleteLocationModal/DeleteLocationModal.tsx | 2 +- .../MigrationWizardConfirmationStep.tsx | 2 +- .../DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx | 2 +- .../DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx | 2 +- web/src/pages/RulesPage/RulesTable.tsx | 2 +- web/src/pages/UsersOverviewPage/UsersTable.tsx | 4 ++-- .../modals/AddNewDeviceModal/AddNewDeviceModal.tsx | 2 +- .../modals/AssignUserIPModal/AssignUserIPModal.tsx | 2 +- .../modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx | 2 +- .../pages/settings/SettingsClientPage/SettingsClientPage.tsx | 2 +- .../SettingsEnrollmentPage/SettingsEnrollmentPage.tsx | 2 +- .../SettingsGatewayNotificationsPage.tsx | 2 +- .../settings/SettingsInstancePage/SettingsInstancePage.tsx | 2 +- web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx | 4 ++-- .../components/ProfileDevicesTable/ProfileDevicesTable.tsx | 2 +- .../AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx | 2 +- 25 files changed, 33 insertions(+), 33 deletions(-) diff --git a/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx b/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx index f2aca5afed..0fa08fe8d2 100644 --- a/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx +++ b/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx @@ -55,10 +55,10 @@ export const DeleteAliasDestinationConfirmModal = () => { try { if (modalData.target.kind === 'alias') { await deleteAlias(modalData.target.id); - Snackbar.default(m.acl_alias_delete_success()); + Snackbar.success(m.acl_alias_delete_success()); } else { await deleteDestination(modalData.target.id); - Snackbar.default(m.acl_destination_delete_success()); + Snackbar.success(m.acl_destination_delete_success()); } setOpen(false); } catch { diff --git a/web/src/pages/CEAliasPage/CEAliasPage.tsx b/web/src/pages/CEAliasPage/CEAliasPage.tsx index 8d2e0ca263..0214df8a1b 100644 --- a/web/src/pages/CEAliasPage/CEAliasPage.tsx +++ b/web/src/pages/CEAliasPage/CEAliasPage.tsx @@ -143,10 +143,10 @@ const FormContent = ({ alias }: { alias?: AclAlias }) => { if (isPresent(alias)) { await editAlias({ ...toSend, id: alias.id }); - Snackbar.default(aliasEditedMessage); + Snackbar.success(aliasEditedMessage); } else { await addAlias(toSend); - Snackbar.default(aliasCreatedMessage); + Snackbar.success(aliasCreatedMessage); } router.history.back(); diff --git a/web/src/pages/CEDestinationPage/CEDestinationPage.tsx b/web/src/pages/CEDestinationPage/CEDestinationPage.tsx index 85f409a1ff..bb2fdfe6dd 100644 --- a/web/src/pages/CEDestinationPage/CEDestinationPage.tsx +++ b/web/src/pages/CEDestinationPage/CEDestinationPage.tsx @@ -138,10 +138,10 @@ export const CEDestinationPage = ({ destination }: Props) => { ...toSend, id: destination.id, }); - Snackbar.default(destinationEditedMessage); + Snackbar.success(destinationEditedMessage); } else { await addDestination(toSend); - Snackbar.default(destinationCreatedMessage); + Snackbar.success(destinationCreatedMessage); } router.history.back(); diff --git a/web/src/pages/CERulePage/CERulePage.tsx b/web/src/pages/CERulePage/CERulePage.tsx index 72b91d9347..d2388e7cd8 100644 --- a/web/src/pages/CERulePage/CERulePage.tsx +++ b/web/src/pages/CERulePage/CERulePage.tsx @@ -151,7 +151,7 @@ const Content = ({ rule: initialRule }: Props) => { invalidate: ['acl'], }, onSuccess: () => { - Snackbar.default('Rules added to Pending tab and awaiting deployment.'); + Snackbar.success('Rules added to Pending tab and awaiting deployment.'); router.history.back(); }, }); @@ -162,7 +162,7 @@ const Content = ({ rule: initialRule }: Props) => { invalidate: ['acl'], }, onSuccess: () => { - Snackbar.default('Rules added to Pending tab and awaiting deployment.'); + Snackbar.success('Rules added to Pending tab and awaiting deployment.'); router.history.back(); }, }); diff --git a/web/src/pages/EditEdgePage/EditEdgePage.tsx b/web/src/pages/EditEdgePage/EditEdgePage.tsx index 48948cc049..9e3a6f0a93 100644 --- a/web/src/pages/EditEdgePage/EditEdgePage.tsx +++ b/web/src/pages/EditEdgePage/EditEdgePage.tsx @@ -62,7 +62,7 @@ const EditEdgeForm = ({ edge }: { edge: Edge }) => { invalidate: ['edge'], }, onSuccess: () => { - Snackbar.default(m.edge_edit_success()); + Snackbar.success(m.edge_edit_success()); }, onError: () => { Snackbar.error(m.edge_edit_failed()); @@ -79,7 +79,7 @@ const EditEdgeForm = ({ edge }: { edge: Edge }) => { to: '/edges', replace: true, }); - Snackbar.default(m.edge_delete_success()); + Snackbar.success(m.edge_delete_success()); }, onError: () => { Snackbar.error(m.edge_delete_failed()); diff --git a/web/src/pages/EditGatewayPage/EditGatewayPage.tsx b/web/src/pages/EditGatewayPage/EditGatewayPage.tsx index 6a96e3cab1..43b056b237 100644 --- a/web/src/pages/EditGatewayPage/EditGatewayPage.tsx +++ b/web/src/pages/EditGatewayPage/EditGatewayPage.tsx @@ -63,7 +63,7 @@ const EditGatewayForm = ({ gateway }: { gateway: Gateway }) => { invalidate: ['gateway'], }, onSuccess: () => { - Snackbar.default(m.gateway_edit_success()); + Snackbar.success(m.gateway_edit_success()); }, onError: () => { Snackbar.error(m.gateway_edit_failed()); @@ -80,7 +80,7 @@ const EditGatewayForm = ({ gateway }: { gateway: Gateway }) => { to: '/locations', replace: true, }); - Snackbar.default(m.gateway_delete_success()); + Snackbar.success(m.gateway_delete_success()); }, onError: () => { Snackbar.error(m.gateway_delete_failed()); diff --git a/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx b/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx index 0dd09274bc..aec8d1a05b 100644 --- a/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx +++ b/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx @@ -54,7 +54,7 @@ export const SetupConfirmationStep = () => { await queryClient.invalidateQueries({ queryKey: getSessionInfoQueryOptions.queryKey, }); - Snackbar.default(`Migration completed`); + Snackbar.success(`Migration completed`); await navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx b/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx index f3a4c2d0dd..d6ef641d0f 100644 --- a/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx +++ b/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx @@ -52,7 +52,7 @@ const Content = () => { const { mutate: finish, isPending: finishPending } = useMutation({ mutationFn: migrationWizardFinishPromise, onSuccess: () => { - Snackbar.default(`Migration completed`); + Snackbar.success(`Migration completed`); navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx b/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx index 02b1b81550..2b7474aab2 100644 --- a/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx +++ b/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx @@ -45,7 +45,7 @@ export const DeleteGatewayModal = () => { if (!modalData) return; try { await deleteGateway(modalData.id); - Snackbar.default(m.gateway_delete_success()); + Snackbar.success(m.gateway_delete_success()); setOpen(false); } catch { Snackbar.error(m.gateway_delete_failed()); diff --git a/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx b/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx index 6fc6baebbb..90e2c6b59c 100644 --- a/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx +++ b/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx @@ -45,7 +45,7 @@ export const DeleteLocationModal = () => { if (!modalData) return; try { await deleteLocation(modalData.id); - Snackbar.default(m.location_delete_success()); + Snackbar.success(m.location_delete_success()); setOpen(false); } catch { Snackbar.error(m.location_delete_failed()); diff --git a/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx b/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx index 9f83de1724..0a2bc02a11 100644 --- a/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx +++ b/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx @@ -52,7 +52,7 @@ export const MigrationWizardConfirmationStep = () => { const { mutate: finish, isPending: finishPending } = useMutation({ mutationFn: migrationWizardFinishPromise, onSuccess: async () => { - Snackbar.default(`Migration finished`); + Snackbar.success(`Migration finished`); await navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx b/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx index fb12e30005..162251a659 100644 --- a/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx +++ b/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx @@ -45,7 +45,7 @@ export const DeleteNetworkDeviceModal = () => { if (!modalData) return; try { await deleteDevice(modalData.id); - Snackbar.default(m.network_device_delete_success()); + Snackbar.success(m.network_device_delete_success()); setOpen(false); } catch { Snackbar.error(m.network_device_delete_failed()); diff --git a/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx b/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx index 2e043f33e6..3833dafc9a 100644 --- a/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx +++ b/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx @@ -45,7 +45,7 @@ export const DeleteOpenIdClientModal = () => { if (!modalData) return; try { await deleteClient(modalData.client_id); - Snackbar.default(m.openid_delete_success()); + Snackbar.success(m.openid_delete_success()); setOpen(false); } catch { Snackbar.error(m.openid_delete_failed()); diff --git a/web/src/pages/RulesPage/RulesTable.tsx b/web/src/pages/RulesPage/RulesTable.tsx index fb4af4a27d..2be3a8c853 100644 --- a/web/src/pages/RulesPage/RulesTable.tsx +++ b/web/src/pages/RulesPage/RulesTable.tsx @@ -110,7 +110,7 @@ export const RulesTable = ({ const { mutate: deployRule } = useMutation({ mutationFn: api.acl.rule.applyRules, onSuccess: () => { - Snackbar.default(`Rule deployed`); + Snackbar.success(`Rule deployed`); }, meta: { invalidate: ['acl'], diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx index d2bb253905..6366fcf6ef 100644 --- a/web/src/pages/UsersOverviewPage/UsersTable.tsx +++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx @@ -438,7 +438,7 @@ export const UsersTable = () => { text: m.users_row_menu_disable_mfa(), variant: 'critical', }, - onSuccess: () => Snackbar.default(m.users_disable_mfa_success()), + onSuccess: () => Snackbar.success(m.users_disable_mfa_success()), onError: () => Snackbar.error(m.users_disable_mfa_error()), }); }, @@ -534,7 +534,7 @@ export const UsersTable = () => { actionPromise: () => api.device.deleteDevice(device.id), invalidateKeys: [['user-overview'], ['user'], ['network']], submitProps: { text: m.controls_delete(), variant: 'critical' }, - onSuccess: () => Snackbar.default(m.user_device_delete_success()), + onSuccess: () => Snackbar.success(m.user_device_delete_success()), onError: () => Snackbar.error(m.user_device_delete_failed()), }); }, diff --git a/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx b/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx index 7a903edec4..a0750fde97 100644 --- a/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx @@ -141,7 +141,7 @@ const EnrollmentChoice = ({ send_enrollment_notification: true, email: value.email, }); - Snackbar.default(m.sucessfull_enrollment_email()); + Snackbar.success(m.sucessfull_enrollment_email()); closeModal(modalName); } }, diff --git a/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx b/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx index 43fab832ee..a4953e7fc6 100644 --- a/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx @@ -155,7 +155,7 @@ const AssignmentForm = ({ invalidate: [['user-device-ips', username]], }, onSuccess: () => { - Snackbar.default(m.modal_assign_user_ip_success({ firstName, lastName })); + Snackbar.success(m.modal_assign_user_ip_success({ firstName, lastName })); closeModal(modalNameValue); }, onError: (error) => { diff --git a/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx b/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx index 8b874e280c..db65245346 100644 --- a/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx @@ -69,7 +69,7 @@ const ModalContent = ({ user, appInfo, enrollmentResponse }: ModalData) => { const { mutateAsync: sendEnrollmentEmail } = useMutation({ mutationFn: api.user.startEnrollment, onSuccess: () => { - Snackbar.default(m.sucessfull_enrollment_email()); + Snackbar.success(m.sucessfull_enrollment_email()); closeModal(modalName); }, onError: (error) => { diff --git a/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx b/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx index d1f66e26e7..f8734e6375 100644 --- a/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx +++ b/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx @@ -80,7 +80,7 @@ const Content = () => { invalidate: [['settings_enterprise'], ['settings']], }, onSuccess: () => { - Snackbar.default(m.settings_msg_saved()); + Snackbar.success(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx b/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx index ab4994b25f..97377822b1 100644 --- a/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx +++ b/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx @@ -89,7 +89,7 @@ const Content = ({ settings }: { settings: Settings }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.default(m.settings_msg_saved()); + Snackbar.success(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx b/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx index 975c86d28a..ccf181d949 100644 --- a/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx +++ b/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx @@ -85,7 +85,7 @@ const Content = ({ settings }: { settings: SettingsGatewayNotifications }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.default(m.settings_msg_saved()); + Snackbar.success(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx b/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx index 01dcfb2bc2..40834de0a3 100644 --- a/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx +++ b/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx @@ -131,7 +131,7 @@ const Content = ({ settings }: { settings: Settings }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.default(m.settings_msg_saved()); + Snackbar.success(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx b/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx index c2e799439d..9d07212afc 100644 --- a/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx +++ b/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx @@ -158,7 +158,7 @@ const PageForm = () => { invalidate: [['settings'], ['info']], }, onSuccess: () => { - Snackbar.default(m.settings_msg_saved()); + Snackbar.success(m.settings_msg_saved()); }, onError: (e) => { Snackbar.error('Failed to save settings.'); @@ -169,7 +169,7 @@ const PageForm = () => { const { mutate: handleLdapTest, isPending: testInProgress } = useMutation({ mutationFn: api.settings.getLdapConnectionStatus, onSuccess: () => { - Snackbar.default('LDAP Connected'); + Snackbar.success('LDAP Connected'); }, onError: (e) => { Snackbar.error('Connection failed'); diff --git a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx index a4586f3be1..2e74dd7804 100644 --- a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx +++ b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx @@ -172,7 +172,7 @@ const DevicesTable = ({ rowData }: { rowData: RowData[] }) => { actionPromise: () => api.device.deleteDevice(row.id), invalidateKeys: [['user-overview'], ['user', username], ['network']], submitProps: { text: m.controls_delete(), variant: 'critical' }, - onSuccess: () => Snackbar.default(m.user_device_delete_success()), + onSuccess: () => Snackbar.success(m.user_device_delete_success()), onError: () => Snackbar.error(m.user_device_delete_failed()), }); }, diff --git a/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx b/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx index 83c263f7ef..5aea6e7516 100644 --- a/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx +++ b/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx @@ -129,7 +129,7 @@ const AssignmentForm = ({ ], }, onSuccess: () => { - Snackbar.default(m.modal_assign_user_device_ip_success({ deviceName })); + Snackbar.success(m.modal_assign_user_device_ip_success({ deviceName })); closeModal(modalNameValue); }, onError: (error) => { From 32b098e1eeb7e3a450c09594c4989e8db8157919 Mon Sep 17 00:00:00 2001 From: Jacek Chmielewski Date: Tue, 17 Mar 2026 08:42:51 +0100 Subject: [PATCH 3/4] fix cache invalidation for user edits --- web/src/pages/UsersOverviewPage/UsersTable.tsx | 2 +- .../AssignUsersToGroupsModal/AssignUsersToGroupsModal.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx index 6366fcf6ef..7aeb14060d 100644 --- a/web/src/pages/UsersOverviewPage/UsersTable.tsx +++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx @@ -115,7 +115,7 @@ export const UsersTable = () => { const { mutate: editUser } = useMutation({ mutationFn: api.user.editUser, meta: { - invalidate: [['user-overview'], ['user']], + invalidate: [['user-overview'], ['user'], ['activity-log']], }, }); diff --git a/web/src/pages/UsersOverviewPage/modals/AssignUsersToGroupsModal/AssignUsersToGroupsModal.tsx b/web/src/pages/UsersOverviewPage/modals/AssignUsersToGroupsModal/AssignUsersToGroupsModal.tsx index 276bd87bc0..0bb9bc1e19 100644 --- a/web/src/pages/UsersOverviewPage/modals/AssignUsersToGroupsModal/AssignUsersToGroupsModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/AssignUsersToGroupsModal/AssignUsersToGroupsModal.tsx @@ -58,7 +58,7 @@ const ModalContent = ({ groups, users }: ModalData) => { closeModal(modalNameValue); }, meta: { - invalidate: [['user-overview'], ['user']], + invalidate: [['user-overview'], ['user'], ['activity-log']], }, }); From 13d545b5a5f403e2054ab9f0bb93ba81db52134a Mon Sep 17 00:00:00 2001 From: Jacek Chmielewski Date: Tue, 17 Mar 2026 10:06:58 +0100 Subject: [PATCH 4/4] use Snackbar.default according to the guidelines --- .../DeleteAliasDestinationConfirmModal.tsx | 4 ++-- web/src/pages/CEAliasPage/CEAliasPage.tsx | 4 ++-- web/src/pages/CEDestinationPage/CEDestinationPage.tsx | 4 ++-- web/src/pages/CERulePage/CERulePage.tsx | 4 ++-- web/src/pages/EditEdgePage/EditEdgePage.tsx | 4 ++-- web/src/pages/EditGatewayPage/EditGatewayPage.tsx | 4 ++-- .../pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx | 2 +- .../LocationsMigrationWizardPage.tsx | 2 +- .../modals/DeleteGatewayModal/DeleteGatewayModal.tsx | 2 +- .../modals/DeleteLocationModal/DeleteLocationModal.tsx | 2 +- .../MigrationWizardConfirmationStep.tsx | 2 +- .../DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx | 2 +- .../DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx | 2 +- web/src/pages/RulesPage/RulesTable.tsx | 2 +- web/src/pages/UsersOverviewPage/UsersTable.tsx | 4 ++-- .../modals/AddNewDeviceModal/AddNewDeviceModal.tsx | 2 +- .../modals/AssignUserIPModal/AssignUserIPModal.tsx | 2 +- .../modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx | 2 +- .../pages/settings/SettingsClientPage/SettingsClientPage.tsx | 2 +- .../SettingsEnrollmentPage/SettingsEnrollmentPage.tsx | 2 +- .../SettingsGatewayNotificationsPage.tsx | 2 +- .../settings/SettingsInstancePage/SettingsInstancePage.tsx | 2 +- web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx | 4 ++-- .../components/ProfileDevicesTable/ProfileDevicesTable.tsx | 2 +- .../AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx | 2 +- 25 files changed, 33 insertions(+), 33 deletions(-) diff --git a/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx b/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx index 0fa08fe8d2..f2aca5afed 100644 --- a/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx +++ b/web/src/pages/Acl/components/DeleteAliasDestinationConfirmModal/DeleteAliasDestinationConfirmModal.tsx @@ -55,10 +55,10 @@ export const DeleteAliasDestinationConfirmModal = () => { try { if (modalData.target.kind === 'alias') { await deleteAlias(modalData.target.id); - Snackbar.success(m.acl_alias_delete_success()); + Snackbar.default(m.acl_alias_delete_success()); } else { await deleteDestination(modalData.target.id); - Snackbar.success(m.acl_destination_delete_success()); + Snackbar.default(m.acl_destination_delete_success()); } setOpen(false); } catch { diff --git a/web/src/pages/CEAliasPage/CEAliasPage.tsx b/web/src/pages/CEAliasPage/CEAliasPage.tsx index 0214df8a1b..8d2e0ca263 100644 --- a/web/src/pages/CEAliasPage/CEAliasPage.tsx +++ b/web/src/pages/CEAliasPage/CEAliasPage.tsx @@ -143,10 +143,10 @@ const FormContent = ({ alias }: { alias?: AclAlias }) => { if (isPresent(alias)) { await editAlias({ ...toSend, id: alias.id }); - Snackbar.success(aliasEditedMessage); + Snackbar.default(aliasEditedMessage); } else { await addAlias(toSend); - Snackbar.success(aliasCreatedMessage); + Snackbar.default(aliasCreatedMessage); } router.history.back(); diff --git a/web/src/pages/CEDestinationPage/CEDestinationPage.tsx b/web/src/pages/CEDestinationPage/CEDestinationPage.tsx index bb2fdfe6dd..85f409a1ff 100644 --- a/web/src/pages/CEDestinationPage/CEDestinationPage.tsx +++ b/web/src/pages/CEDestinationPage/CEDestinationPage.tsx @@ -138,10 +138,10 @@ export const CEDestinationPage = ({ destination }: Props) => { ...toSend, id: destination.id, }); - Snackbar.success(destinationEditedMessage); + Snackbar.default(destinationEditedMessage); } else { await addDestination(toSend); - Snackbar.success(destinationCreatedMessage); + Snackbar.default(destinationCreatedMessage); } router.history.back(); diff --git a/web/src/pages/CERulePage/CERulePage.tsx b/web/src/pages/CERulePage/CERulePage.tsx index d2388e7cd8..72b91d9347 100644 --- a/web/src/pages/CERulePage/CERulePage.tsx +++ b/web/src/pages/CERulePage/CERulePage.tsx @@ -151,7 +151,7 @@ const Content = ({ rule: initialRule }: Props) => { invalidate: ['acl'], }, onSuccess: () => { - Snackbar.success('Rules added to Pending tab and awaiting deployment.'); + Snackbar.default('Rules added to Pending tab and awaiting deployment.'); router.history.back(); }, }); @@ -162,7 +162,7 @@ const Content = ({ rule: initialRule }: Props) => { invalidate: ['acl'], }, onSuccess: () => { - Snackbar.success('Rules added to Pending tab and awaiting deployment.'); + Snackbar.default('Rules added to Pending tab and awaiting deployment.'); router.history.back(); }, }); diff --git a/web/src/pages/EditEdgePage/EditEdgePage.tsx b/web/src/pages/EditEdgePage/EditEdgePage.tsx index 9e3a6f0a93..48948cc049 100644 --- a/web/src/pages/EditEdgePage/EditEdgePage.tsx +++ b/web/src/pages/EditEdgePage/EditEdgePage.tsx @@ -62,7 +62,7 @@ const EditEdgeForm = ({ edge }: { edge: Edge }) => { invalidate: ['edge'], }, onSuccess: () => { - Snackbar.success(m.edge_edit_success()); + Snackbar.default(m.edge_edit_success()); }, onError: () => { Snackbar.error(m.edge_edit_failed()); @@ -79,7 +79,7 @@ const EditEdgeForm = ({ edge }: { edge: Edge }) => { to: '/edges', replace: true, }); - Snackbar.success(m.edge_delete_success()); + Snackbar.default(m.edge_delete_success()); }, onError: () => { Snackbar.error(m.edge_delete_failed()); diff --git a/web/src/pages/EditGatewayPage/EditGatewayPage.tsx b/web/src/pages/EditGatewayPage/EditGatewayPage.tsx index 43b056b237..6a96e3cab1 100644 --- a/web/src/pages/EditGatewayPage/EditGatewayPage.tsx +++ b/web/src/pages/EditGatewayPage/EditGatewayPage.tsx @@ -63,7 +63,7 @@ const EditGatewayForm = ({ gateway }: { gateway: Gateway }) => { invalidate: ['gateway'], }, onSuccess: () => { - Snackbar.success(m.gateway_edit_success()); + Snackbar.default(m.gateway_edit_success()); }, onError: () => { Snackbar.error(m.gateway_edit_failed()); @@ -80,7 +80,7 @@ const EditGatewayForm = ({ gateway }: { gateway: Gateway }) => { to: '/locations', replace: true, }); - Snackbar.success(m.gateway_delete_success()); + Snackbar.default(m.gateway_delete_success()); }, onError: () => { Snackbar.error(m.gateway_delete_failed()); diff --git a/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx b/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx index aec8d1a05b..0dd09274bc 100644 --- a/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx +++ b/web/src/pages/GatewaySetupPage/steps/SetupConfirmationStep.tsx @@ -54,7 +54,7 @@ export const SetupConfirmationStep = () => { await queryClient.invalidateQueries({ queryKey: getSessionInfoQueryOptions.queryKey, }); - Snackbar.success(`Migration completed`); + Snackbar.default(`Migration completed`); await navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx b/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx index d6ef641d0f..f3a4c2d0dd 100644 --- a/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx +++ b/web/src/pages/LocationsMigrationWizardPage/LocationsMigrationWizardPage.tsx @@ -52,7 +52,7 @@ const Content = () => { const { mutate: finish, isPending: finishPending } = useMutation({ mutationFn: migrationWizardFinishPromise, onSuccess: () => { - Snackbar.success(`Migration completed`); + Snackbar.default(`Migration completed`); navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx b/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx index 2b7474aab2..02b1b81550 100644 --- a/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx +++ b/web/src/pages/LocationsPage/modals/DeleteGatewayModal/DeleteGatewayModal.tsx @@ -45,7 +45,7 @@ export const DeleteGatewayModal = () => { if (!modalData) return; try { await deleteGateway(modalData.id); - Snackbar.success(m.gateway_delete_success()); + Snackbar.default(m.gateway_delete_success()); setOpen(false); } catch { Snackbar.error(m.gateway_delete_failed()); diff --git a/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx b/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx index 90e2c6b59c..6fc6baebbb 100644 --- a/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx +++ b/web/src/pages/LocationsPage/modals/DeleteLocationModal/DeleteLocationModal.tsx @@ -45,7 +45,7 @@ export const DeleteLocationModal = () => { if (!modalData) return; try { await deleteLocation(modalData.id); - Snackbar.success(m.location_delete_success()); + Snackbar.default(m.location_delete_success()); setOpen(false); } catch { Snackbar.error(m.location_delete_failed()); diff --git a/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx b/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx index 0a2bc02a11..9f83de1724 100644 --- a/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx +++ b/web/src/pages/MigrationWizardPage/steps/MigrationWizardConfirmationStep/MigrationWizardConfirmationStep.tsx @@ -52,7 +52,7 @@ export const MigrationWizardConfirmationStep = () => { const { mutate: finish, isPending: finishPending } = useMutation({ mutationFn: migrationWizardFinishPromise, onSuccess: async () => { - Snackbar.success(`Migration finished`); + Snackbar.default(`Migration finished`); await navigate({ to: '/vpn-overview', replace: true }); setTimeout(() => { useMigrationWizardStore.getState().resetState(); diff --git a/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx b/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx index 162251a659..fb12e30005 100644 --- a/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx +++ b/web/src/pages/NetworkDevicesPage/modals/DeleteNetworkDeviceModal/DeleteNetworkDeviceModal.tsx @@ -45,7 +45,7 @@ export const DeleteNetworkDeviceModal = () => { if (!modalData) return; try { await deleteDevice(modalData.id); - Snackbar.success(m.network_device_delete_success()); + Snackbar.default(m.network_device_delete_success()); setOpen(false); } catch { Snackbar.error(m.network_device_delete_failed()); diff --git a/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx b/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx index 3833dafc9a..2e043f33e6 100644 --- a/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx +++ b/web/src/pages/OpenIdPage/modals/DeleteOpenIdClientModal/DeleteOpenIdClientModal.tsx @@ -45,7 +45,7 @@ export const DeleteOpenIdClientModal = () => { if (!modalData) return; try { await deleteClient(modalData.client_id); - Snackbar.success(m.openid_delete_success()); + Snackbar.default(m.openid_delete_success()); setOpen(false); } catch { Snackbar.error(m.openid_delete_failed()); diff --git a/web/src/pages/RulesPage/RulesTable.tsx b/web/src/pages/RulesPage/RulesTable.tsx index 2be3a8c853..fb4af4a27d 100644 --- a/web/src/pages/RulesPage/RulesTable.tsx +++ b/web/src/pages/RulesPage/RulesTable.tsx @@ -110,7 +110,7 @@ export const RulesTable = ({ const { mutate: deployRule } = useMutation({ mutationFn: api.acl.rule.applyRules, onSuccess: () => { - Snackbar.success(`Rule deployed`); + Snackbar.default(`Rule deployed`); }, meta: { invalidate: ['acl'], diff --git a/web/src/pages/UsersOverviewPage/UsersTable.tsx b/web/src/pages/UsersOverviewPage/UsersTable.tsx index 7aeb14060d..13bd69f9dc 100644 --- a/web/src/pages/UsersOverviewPage/UsersTable.tsx +++ b/web/src/pages/UsersOverviewPage/UsersTable.tsx @@ -438,7 +438,7 @@ export const UsersTable = () => { text: m.users_row_menu_disable_mfa(), variant: 'critical', }, - onSuccess: () => Snackbar.success(m.users_disable_mfa_success()), + onSuccess: () => Snackbar.default(m.users_disable_mfa_success()), onError: () => Snackbar.error(m.users_disable_mfa_error()), }); }, @@ -534,7 +534,7 @@ export const UsersTable = () => { actionPromise: () => api.device.deleteDevice(device.id), invalidateKeys: [['user-overview'], ['user'], ['network']], submitProps: { text: m.controls_delete(), variant: 'critical' }, - onSuccess: () => Snackbar.success(m.user_device_delete_success()), + onSuccess: () => Snackbar.default(m.user_device_delete_success()), onError: () => Snackbar.error(m.user_device_delete_failed()), }); }, diff --git a/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx b/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx index a0750fde97..7a903edec4 100644 --- a/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/AddNewDeviceModal/AddNewDeviceModal.tsx @@ -141,7 +141,7 @@ const EnrollmentChoice = ({ send_enrollment_notification: true, email: value.email, }); - Snackbar.success(m.sucessfull_enrollment_email()); + Snackbar.default(m.sucessfull_enrollment_email()); closeModal(modalName); } }, diff --git a/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx b/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx index a4953e7fc6..43fab832ee 100644 --- a/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/AssignUserIPModal/AssignUserIPModal.tsx @@ -155,7 +155,7 @@ const AssignmentForm = ({ invalidate: [['user-device-ips', username]], }, onSuccess: () => { - Snackbar.success(m.modal_assign_user_ip_success({ firstName, lastName })); + Snackbar.default(m.modal_assign_user_ip_success({ firstName, lastName })); closeModal(modalNameValue); }, onError: (error) => { diff --git a/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx b/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx index db65245346..8b874e280c 100644 --- a/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx +++ b/web/src/pages/UsersOverviewPage/modals/EnrollmentTokenModal/EnrollmentTokenModal.tsx @@ -69,7 +69,7 @@ const ModalContent = ({ user, appInfo, enrollmentResponse }: ModalData) => { const { mutateAsync: sendEnrollmentEmail } = useMutation({ mutationFn: api.user.startEnrollment, onSuccess: () => { - Snackbar.success(m.sucessfull_enrollment_email()); + Snackbar.default(m.sucessfull_enrollment_email()); closeModal(modalName); }, onError: (error) => { diff --git a/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx b/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx index f8734e6375..d1f66e26e7 100644 --- a/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx +++ b/web/src/pages/settings/SettingsClientPage/SettingsClientPage.tsx @@ -80,7 +80,7 @@ const Content = () => { invalidate: [['settings_enterprise'], ['settings']], }, onSuccess: () => { - Snackbar.success(m.settings_msg_saved()); + Snackbar.default(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx b/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx index 97377822b1..ab4994b25f 100644 --- a/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx +++ b/web/src/pages/settings/SettingsEnrollmentPage/SettingsEnrollmentPage.tsx @@ -89,7 +89,7 @@ const Content = ({ settings }: { settings: Settings }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.success(m.settings_msg_saved()); + Snackbar.default(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx b/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx index ccf181d949..975c86d28a 100644 --- a/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx +++ b/web/src/pages/settings/SettingsGatewayNotificationsPage/SettingsGatewayNotificationsPage.tsx @@ -85,7 +85,7 @@ const Content = ({ settings }: { settings: SettingsGatewayNotifications }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.success(m.settings_msg_saved()); + Snackbar.default(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx b/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx index 40834de0a3..01dcfb2bc2 100644 --- a/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx +++ b/web/src/pages/settings/SettingsInstancePage/SettingsInstancePage.tsx @@ -131,7 +131,7 @@ const Content = ({ settings }: { settings: Settings }) => { invalidate: ['settings'], }, onSuccess: () => { - Snackbar.success(m.settings_msg_saved()); + Snackbar.default(m.settings_msg_saved()); }, onError: () => { Snackbar.error(m.settings_msg_save_failed()); diff --git a/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx b/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx index 9d07212afc..c2e799439d 100644 --- a/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx +++ b/web/src/pages/settings/SettingsLdapPage/SettingsLdapPage.tsx @@ -158,7 +158,7 @@ const PageForm = () => { invalidate: [['settings'], ['info']], }, onSuccess: () => { - Snackbar.success(m.settings_msg_saved()); + Snackbar.default(m.settings_msg_saved()); }, onError: (e) => { Snackbar.error('Failed to save settings.'); @@ -169,7 +169,7 @@ const PageForm = () => { const { mutate: handleLdapTest, isPending: testInProgress } = useMutation({ mutationFn: api.settings.getLdapConnectionStatus, onSuccess: () => { - Snackbar.success('LDAP Connected'); + Snackbar.default('LDAP Connected'); }, onError: (e) => { Snackbar.error('Connection failed'); diff --git a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx index 2e74dd7804..a4586f3be1 100644 --- a/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx +++ b/web/src/pages/user-profile/UserProfilePage/tabs/ProfileDevicesTab/components/ProfileDevicesTable/ProfileDevicesTable.tsx @@ -172,7 +172,7 @@ const DevicesTable = ({ rowData }: { rowData: RowData[] }) => { actionPromise: () => api.device.deleteDevice(row.id), invalidateKeys: [['user-overview'], ['user', username], ['network']], submitProps: { text: m.controls_delete(), variant: 'critical' }, - onSuccess: () => Snackbar.success(m.user_device_delete_success()), + onSuccess: () => Snackbar.default(m.user_device_delete_success()), onError: () => Snackbar.error(m.user_device_delete_failed()), }); }, diff --git a/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx b/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx index 5aea6e7516..83c263f7ef 100644 --- a/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx +++ b/web/src/shared/components/modals/AssignUserDeviceIPModal/AssignUserDeviceIPModal.tsx @@ -129,7 +129,7 @@ const AssignmentForm = ({ ], }, onSuccess: () => { - Snackbar.success(m.modal_assign_user_device_ip_success({ deviceName })); + Snackbar.default(m.modal_assign_user_device_ip_success({ deviceName })); closeModal(modalNameValue); }, onError: (error) => {