* feat: add reservedAt metadata when address is generated from receive
* feat: add link to Reserved Addresses in wallet navigation
* feat: add ReservedAddressesViewModel with labels and reserved timestamp
* feat: implement Reserved Addresses view with filtering, pagination and label management
* feat: add GetReservedAddressesWithDetails with label and timestamp support
* feat: add ReservedAddresses endpoint
* test: add Reserved Addresses view test with label, filter and pagination
* test: use stable ID for filter input instead of placeholder
* Moving Reserved Addresses to Receive page
* feat: sync labels created via Label Manager using labelmanager:changed event
* refactor: optimize GetReservedAddressesWithDetails using direct SQL query
* feat: add link to filter Reserved Addresses by label from Wallet Labels view
* refactor: remove legacy selenium test
* test: add playwright tests with label filtering, pagination and redirect from Wallet Labels view
* refactor: optimize Reserved Addresses filtering with Set and Safe.Json
---------
Co-authored-by: rockstardev <5191402+rockstardev@users.noreply.github.com>
- Used the same logic as the StoreUsers.cshtml page to design the remove modal
- Removed the unit test part related to the deletion of email rules, since using this way of remove above is not possible to unit test, at least I didn't found an example to look at.
Also added a template on how we could call the confirmation screen using Javascript, without refreshing the page.
Finally, added a UX way to close the modal, pressing ESC.
* Store users: Ensure the last owner cannot be downgraded
Changes the behaviour of the `AddOrUpdateStoreUser` method to throw errors for the failure cases, so that the UI and API can report the actual problem. A role change might fail if the user already has that role or if they are the last owner of the store.
* Cleanup code
---------
Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>