* fix(bug): Admin/Owner viewing and editing ciphers from within health reports
* Change check for unassigned ciphers to include default collection check
* Remove unnecessary typecasting
* switch back to default (Lock) session timeout action when PIN is enabled in master password less accounts.
* always reset to null (default) when only one action is available.
* unnecessary additional keys refresh on token storage migration
* Remove pm-23341-milestone-2 flagged logic from user-subscription component
Remove the enableDiscountDisplay$ feature flag observable and collapse the
ngIf/else template to always show the discount badge. The badge handles
null/no-discount gracefully.
* Remove PM23341_Milestone_2 flag definition from feature-flag enum
Remove the enableDiscountDisplay$ feature flag observable and collapse the
ngIf/else template to always show the discount badge. The badge handles
null/no-discount gracefully.
* fix: warn user about unsaved changes before applying desktop update
* fix: update dialog
* fix: update restart to properly clean up IPC listeners on timeout and warn about unsaved Send forms
* revert: Revert AddEditComponent changes
* fix: solve type error
* fix: warn user about unsaved chagnes
* fix: use FormGroupDirective in DirtyFormService to detect dirty forms after form reassignment
---------
Co-authored-by: bittoby <bittoby@users.noreply.github.com>
* fix(dirt): check response.error before showing success toast for critical apps
The orchestrator's catchError converts API failures into next emissions
with response.error set. The component's next handler was unconditionally
showing a success toast without checking this field.
Now checks response.error and shows an error toast when the API call
failed. Selection is preserved on error so users can retry.
Also ensures updatingCriticalApps signal is reset on all paths (success,
caught error, and uncaught error).
[PM-33067]
* test(dirt): add tests for mark/unmark critical apps error handling
Tests verify that:
- Success toast shown when response.error is null
- Error toast shown when response.error is non-null
- Selection preserved on error, cleared on success
[PM-33067]
* fix(dirt): use specific error toast for unmark critical apps failure
Replace generic "An unexpected error has occurred" with
"Failed to unmark applications as critical" for consistency
with the mark-as-critical error toast.
* fix(dirt): check response.error in Review New Applications mark critical
The AllApplicationsComponent (Review New Applications widget) had the
same false success toast bug as the All Applications tab. The next
handler ignored the response parameter entirely, showing a success
toast even when response.error was set by the orchestrator's catchError.
Now checks response.error before showing toast. On error: shows
"Failed to mark applications as critical" and preserves selection.
Also resets markingAsCritical on all paths.
Adds unit tests for mark success and error paths.
[PM-33067]
* Revert "fix(dirt): check response.error in Review New Applications mark critical"
This reverts commit b646598613.
* fix(dirt): check response.error in application review dialog before showing success toast
The saveApplicationReviewStatus$ orchestrator method uses catchError
to convert API failures into next emissions with response.error set.
The dialog used firstValueFrom inside try/catch, but since catchError
prevents the Observable from erroring, firstValueFrom resolves
successfully and the catch block never fires.
Now checks response.error on the resolved value before showing the
success toast. On error: shows "Error saving review status" and
stays on the dialog so the user can retry.
[PM-33067]
* Replace usage of two factor images with TwoFactorIcon component
* Delete web scss and now unused two-factor images
* Remove mfaType from eslint whitelist
* Delete unused mfaType scss entries on browser and desktop
* Fix linting issue
* Remove icons from two factor setup dialogs
* Delete unused images on browser and desktop
* Remove mfaLogoSuffix
* Remove paragraph
---------
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
Makes a distinct `"settings-change-password"` route on Extension - to be used when the user initiates changing their password by navigating to Settings > Account Recovery. This route uses the `ChangePasswordPageComponent` (unlike the "change-password" route, which uses the `ExtensionAnonLayoutWrapperComponent`).
Feature flag: `pm-32413-multi-client-password-management`
* re init notification bar in overlay
* overlay tests
* update notification background to verify the tabs current url matches the domain which the notification was queued for, improve guard in cipher queue message
* use example sites in testing