Commit Graph

4347 Commits

Author SHA1 Message Date
Noelia 01095e0208 feat(ProfileShowcase): Add foldable sections in profile showcase tabs
- Modified `ProfileShowcasePanel` with 2 foldable sections.
-  Modified api of `ProfileShowcaseCommunitiesPanel` with the new base component.
- Modified api of `ProfileShowcaseAccountsPanel` with the new base component.
- Modified api of `ProfileShowcaseAssetsPanel`  and `ProfileShowcaseCollectiblesPanel` with the new base component.
- Added needed `storybook` support.

Closes of #13504
2024-02-19 11:13:23 +01:00
Noelia 9c3159ecd1 feat(ProfileSettings): Base layout updated
Removed unnecessary `ColumnLayout` and adjusted sizing of component inside.
2024-02-19 11:13:23 +01:00
Noelia d5134fe864 feat(shared/controls): Moved foldable header and generic list view from wallet to shared
Renamed `ManageTokensListViewBase` to `EmptyShapeRectangleFooterListView` and moved `FoldableHeader` to shared/controls.

Updated related `ManageXXPanel` components.
2024-02-19 11:13:23 +01:00
Noelia 32feaff6d7 fix(ManageTokensView): Renamed tokens panel to assets panel
Rename.
2024-02-19 11:13:23 +01:00
Lukáš Tinkl 2fa65968c0 fix(Profile flow): Send a contact request (CR)
- make `SendContactRequestModal.qml` use the common dialog, use the
contact details if we already have it
- make some minimal changes to the "Send ID verification" flow since it
shares the same dialog
- simplify the `CommonContactDialog.qml` footer/buttons handling
- adjust the menu item texts
- emit toasts when the action is performed
- display a tooltip over the compressed elided key

Fixes #13518
2024-02-16 16:47:45 +01:00
Lukáš Tinkl 275d4fb349 fix(Profile flow): Adding/changing/removing a nickname
- introduce a shared `CommonContactDialog.qml` component, to be used in
all profile/contact related flows
- make `NicknamePopup.qml` use the common dialog
- adjust the menu item text and add a new "Remove nickname" item
- remove unused `DisplayNamePopup.qml`
- emit toasts when the nickname changes

Fixes #13513
2024-02-16 10:52:58 +01:00
Dario Gabriel Lipicar 1860aa8240 fix(wallet): implement sort collectibles by date
Fixes #13550
2024-02-15 14:09:04 -03:00
Anthony Laibe 40e00c0602 fix(@wallet): Sepolia toggle 2024-02-15 11:53:22 +01:00
Sale Djenic dbd7937d8b feat(savedaddresses): add save receiver address to the context menu in tx details view
This commit handles saved addresses changes and reflect them to the history view
and tx details view. In this context it handles the same way changes coming from sync
devices.

Also fix the issue when switching network mode.

Closes: #13095
2024-02-15 10:07:48 +01:00
Noelia 2259f92ed3 storybook(ActivityNotification): Community token received page
Added support to `ActivityNotificationCommunityTokenReceived` component.

Closes #13362
2024-02-14 15:10:20 +01:00
Alex Jbanca 8a69f3bc63
fix(SeedPhrase): Fixing seed phrase validation (#13496)
* fix(SeedPhrase): Fixing seed phrase validation

1. Validate each word after the editing is finished
2. Fixing the seed phrase suggestions where the suggestions box was hidden behind other ui elements
3. Propagate editingFinished signal in StatusBaseInput, StatusInput, StatusSeedPhraseInput
4. Fixing undefined `mnemonicIndex` errors

* fix: Refactoring of SeedPhraseInputView

Remove duplicated code and use EnterSeedPhrase component

+ Added storybook page

* fix(Onboarding): Fixing seed phrase validation on windows

The seed phrase validation fails on windows due to the dictionary line endings

* chore(squish): Update e2e tests to the new enter seed phrase panel construction

* fix: Load english dictionary from local file using StringUtils
2024-02-14 15:50:14 +02:00
Lukáš Tinkl 46e256673c feat(profile): Place user image/identicon onto the QR code
- fix the QR code to generate a URL with the link to the profile instead
of just the user key
- reuse the `UserImage` component and place it on top of the existing QR
code
- put a white rectangle behind the QR code image and white ring around
the user image

Fixes #13482
2024-02-14 13:37:06 +01:00
Noelia 98f9edb545 fix(ManageTokens): Advanced tab UI pixel perfect fixes
- Fixed spacing between `Token lists` title and list items.
- Fixed spacing between list items and `add more` box.
- Fixed highlight item when hovering `View` button.

Closes  #13395
2024-02-14 13:21:08 +01:00
Sale Djenic 3e3452c8db fix(savedaddresses): saved addresses are not in sync between devices
Closes: #9567
2024-02-14 12:19:34 +01:00
Noelia 1de573ada7 feat(ProfileShowcase): Collectibles panel navigation button
- Created new reusable component to navigate to accounts tab form collectibles / assets tab.
- Added needed support in `storybook` to cover the new use case.

Closes #13340
2024-02-14 10:28:56 +01:00
Anastasiya Semenkevich 34d72e7cf1 chore: object name for image cropper 2024-02-13 22:18:39 +03:00
Michal Iskierko 46c69cf0a8 fix(@desktop/permissions): Hide permissions list in sharing addresses dialog if only base permissions are set
Fix #12884
2024-02-13 12:09:26 +01:00
Noelia edf7e82932 feat(ProfileShowcase): Save changes tooltip when disabled
- Replaced current `StatusButton` type to `DisabledTootipButton` to allow tooltip displayed when disabled in dirty toast message.
- Added needed conditions in `MyProfileView` where the tooltip when the save changes is disabled.

Closes #13334
2024-02-13 10:56:50 +01:00
Anthony Laibe a1c2d9a4b2 feat(@wallet): add restart required for changes
fixes #13380
2024-02-13 09:34:06 +01:00
Jonathan Rainville d41affabb9 fix(discord_import): fix community not cleaned up when it fails
Fixes #12724

The actual issue wasn't reproducible, even if I removed the guards against duplicate names.
But I did find that the community wasn't cleaned up correctly, so I fixed it in this PR. It should limit the confusion and possible issues that could arise.
2024-02-12 16:43:16 -05:00
Noelia 463cce03ac feat(ShowcaseDelegate): Added community badge
- Added community badge in `ShowcaseDelegate`.
- Added `storybook` support.

Closes #13336
2024-02-12 14:45:14 +01:00
Noelia 9d4f1f6aa7 feat(ProfileShowcase): Assets panel navigation button
- Added new button to navigate to accounts tab form assets tab.
- Added needed support in storybook to cover the new use case.

Closes #13337
2024-02-12 14:44:47 +01:00
Khushboo Mehta 8c939ad3a3 fix(@desktop/wallet): Replace existing model used in Community / Permissions and do the needed cleanups
fixes #12513
2024-02-12 14:26:13 +01:00
Michał Cieślak ee3e1febb6 fix(StatusModalFooter): Prevent footer's buttons overflow
Closes: #11449
2024-02-09 13:41:39 +01:00
Michał Cieślak 6aee04e33e fix(StatusDialogFooter): Prevent footer's buttons overflow 2024-02-09 13:41:39 +01:00
Alexandra Betouni 480985ca4e
[Settings]: Added change password view (#13284)
* [Settings]: Added change password view

Closes #10037

Adding configuration options to PasswordView

* feat(ChangePassword): Integrate ConfirmChangePasswordModal

1. Integrate with backend
2. Clean unused components

* feat: Add support to restart application

1. Adding restart app support in DOtherSide
2. Integrating nimqml
3. Expose in qml in Utils

* chore: Move changeDatabasePassword call to threadpool

* chore(squish): Fix failing tests due to settings index changes

---------

Co-authored-by: Alex Jbanca <alexjb@status.im>
2024-02-09 13:31:37 +02:00
Lukáš Tinkl 319b5dd23e feat(profile dialog): General UI updates
- create new `ShareProfileDialog` with QR code + links
- align the context menu items with latest Figma designs
- add `isBlocked` to contact icons
- adjust SB to show more options and showcase models

Fixes #13416
Fixes #13417
2024-02-09 11:41:55 +01:00
Valentina1133 0378b12b7d
chore: object names for profile tab buttons added (#13469) 2024-02-09 11:05:14 +07:00
Alexandra Betouni 5811285de6 [Communities]: renamed create community button
Closes #8481
2024-02-08 19:16:22 +02:00
Ivan Belyakov 1ac52f5d38 feat: Add RPC statistics screen to settings' advanced view
Closes #13264
2024-02-08 17:10:53 +01:00
Lukáš Tinkl b38138cc71 fix(AppMain): display a badge for Settings icon with incoming CR
Fixes #9779
2024-02-08 16:49:27 +01:00
Dario Gabriel Lipicar 8b7efa3122 feat(wallet): simplify loading items mechanism for collectibles model
Fixes #11802
2024-02-08 11:08:21 -03:00
Alex Jbanca 87d3dcb113 fix(ChannelPermissions): Fixing duplicate permission detection and save button state
The duplicate permission detection was not working because the channel selection cannot be dirty when the channel selector is disabled.
2024-02-07 19:54:47 +02:00
Alex Jbanca 0b856737b1 chore(ChannelPermissions): Remove HidePermissionPanel component 2024-02-07 19:54:47 +02:00
Alex Jbanca cf82772aed feat(ChannelPermissions): Add permissions section in create/edit channel popup
Changes:
1. Make PermissionsView/EditPermissionsView configurable to support channel permissions config
2. Adding channel permissions support in the create/edit channel popup
3. Connect the channel permissions to backend
4. Cleaning unneeded emojiPopup
2024-02-07 19:54:47 +02:00
Alex Jbanca 56d67f5ba2 chore(Permissions): Adding utility function getUniqueChannelPermission 2024-02-07 19:54:47 +02:00
Alex Jbanca 055d8e8322 chore(permissions): Improve performance by using the `Fast` expressions and add necessary models and APIs in the PermissionsStore
Changes:
1. Adding the `Fast` expressions where needed
2. Break the channel permissions into categories in PermissionsStore
3. Remove unused/unneeded code
2024-02-07 19:54:47 +02:00
Alex Jbanca 35c1475403 chore: Adding new component ChannelPermissionsModelEditor
The purpose of this component is to hold the dirty permissions edited my the user.

This is a functional component used to create/edit/delete permissions. The edited permissions are detached from the backend.
2024-02-07 19:54:47 +02:00
Alexandra Betouni d2030de867 [TransferOwnershipPopup]: Added getUidForData function
Closes #13288
2024-02-07 17:30:41 +02:00
Lukáš Tinkl 3eff96bfc8 feat(profile): Implement side-by-side preview
- restored dirty tracking for Identity; showcase is handled by the NIM
backend atm
- StatusSectionLayout: make the right panel width configurable and clean
the docu

Fixes #13331
2024-02-07 14:29:59 +01:00
Igor Sirotin 69d4c8824b
chore: show "Fetch messages" chat context menu action when in debug mode (#13445) 2024-02-07 12:38:46 +00:00
Lukáš Tinkl 3ebd4509bb feat(profile): Break profile settings page into tabs
- Each section of the current profile settings view is moved into the
corresponding tab
- The Preview tab becomes the Preview button
- Password button becomes a separate page: PR: [Settings]: Added change
password view #13284 (I kept the Change password button for now until
this is merged)

- Also creates the new Web (Social links) tab as a result

Fixes #13330
Fixes #13406
2024-02-07 10:39:18 +01:00
Michał Cieślak ca90636384 fix(ManageHiddenPanel): Disable displace Transition to fix positioning on unhiding
When removing the top-most item from the list, animation was ending with
improper delegates' positioning. No workaround found, transition
disabled.

Closes: #13392
2024-02-07 10:33:21 +01:00
Jonathan Rainville db49c5995f chore(ChatContextMenuView): clean up unused leaveGroup signal 2024-02-06 12:30:57 -05:00
Anthony Laibe 0916d1db2c feat(@wallet): 5 chars min account keypair name
fixes #13384
2024-02-06 14:14:42 +01:00
Lukáš Tinkl 9b85a302fc fix(showcase): unbreak drag and drop reordering
- unify the signature of the method to `move(from, to, count)` so that
both ListModel and NIM have it the same
- realize the move operation using the proper `begin/endMoveRows`
instead of doing a full model reset
- simplify signaling `dataChanged()` for all model roles (nimqml now
follows the C++ impl)

Fixes #13329
2024-02-06 10:09:56 +01:00
Godfrain Jacques ae16bd8b67
fix(settings): It's not possible to switch the log level (#13309)
* chore: bump status-go

Closes #13139

* fix(settings): It's not possible to switch the log level

Previously it was not possible to change the state of the Debug toggle.
This is because the code forced the setting the default value, ignoring
the database setup, hence always setting the DEBUG as LogLevel.

Closes #13139
2024-02-05 09:11:27 -08:00
Lukáš Tinkl d537807fbd fix: [Community Settings] Tokens page is not scrollable...
... from within the gridView

Set the ListView/GridView `interactive: false` to unbreak touchpad
scrolling; those views are unrolled anyway

Fixes #11959
2024-02-05 13:09:48 +01:00
Lukáš Tinkl 9db48a986a fix(token mgmt): finish the controller refactoring
- reduce the duplication by moving the controllers (1 per type) to the
toplevel stores
- make sure the internal properties stay in sync between save/load now
that we have just 1 common controller
- fix navigating to the Hidden section from the toast
- finish impl of hiding the token from FirstTokenReceivedPopup
2024-02-02 23:48:10 +01:00
Noelia 3cbfe1cf54 feat(TokensManagement): Hide asset / collectible popup
Moved `ConfirmationDialog` popups related to hide individual assets or collectibles to `Popups`.

Part of #13293
2024-02-02 23:48:10 +01:00
Lukáš Tinkl 12bbaee43f fix: refactor the token mgmt controller and models placement
put the respective controller instances into WalletAssetsStore and
CollectiblesStore, so that they can be accessed from other places, like
the SendModal or some popups

Iterates #13293
2024-02-02 23:48:10 +01:00
Ivan Belyakov c791173c81 fix(wallet): disable "Send" button at all places when no network
connection

Closes: #13326
2024-02-02 14:46:40 +01:00
Anthony Laibe 1634109971 feat(@wallet): token list global updated at
fixes #13269
2024-02-02 12:01:17 +01:00
Lukáš Tinkl fa75cf7b9b fix: Incorrect margins when collection group name is long
- set width for the text so that the ellision works correctly

Fixes #13396
2024-02-02 11:59:32 +01:00
Alex Jbanca a55dcf299e performance: Improve the wallet loading time
+ small bug fixes
2024-02-01 16:46:40 +02:00
Alex Jbanca a6abdbeeef Revert "fix(RightTabView): revert to using a StackLayout instead of a Loader"
This reverts commit b58612f070.
2024-02-01 16:46:40 +02:00
Ivan Belyakov 49adcd9b59 fix(wallet): fix qml warnings and errors in Wallet 2024-02-01 09:39:00 +01:00
Khushboo Mehta 7dcc704d29 fix(@desktop/wallet): Prepare send modal to display community assets
fixes #12378
2024-01-31 15:48:35 +01:00
Michał Cieślak 6f25499380 chore(Settings/Tokens management): simplify ManageAssetsPanel and ManageCollectiblesPanel by deriving directly from DoubleFlickableWithFolding 2024-01-31 13:51:00 +01:00
Michał Cieślak 2e29e847ac chore(WalletSettings): Use DoubleFlickable for assets/collectibles tabs in manage tokens
It provides visual alignments to the current design and also
significantly improves performance because ListView components
are not "unrolled" causing instantiation of too many delegates.

Closes: #12703
Closes: #13043
2024-01-31 13:51:00 +01:00
Michał Cieślak 9fe60e650f chore(DoubleFlickableWithFolding): Component api and usage simplified
Now the header don't have to be reparented manually. Everything
is done internally in the component. Additionally the usage
in CollectiblesView is adjusted to the change.
2024-01-31 13:51:00 +01:00
Noelia f2db89573f feat(AC-CommunityTokenReceived): Added UI for community tokens received
- Added UI support for first community token received (asset or collectible).
- Added UI support for any community token received (asset or collectible).
- TODO: Storybook support

Fixes #12515
2024-01-31 11:19:29 +01:00
Michal Iskierko 0a18dda176 feat(@desktop/chat): Displaying new type of chat message - bridge message
Show discord user as a message sender.
Show discord avatar next to user name.
Show "Bridged from Discord" label.
Open adjusted profile context menu.

Issue #13098
2024-01-30 13:06:17 +01:00
Khushboo Mehta ff951f624a fix(@deaktop/wallet): Remove old tokens_service under accounts service and only keep new one.
fixes #13142
2024-01-30 10:56:51 +01:00
Sale Djenic 4405397e18 fix(keycard): keycard details screen's title should follow the keypair's name, not the keycard's names 2024-01-29 15:10:50 +01:00
Sale Djenic bbaafa8954 feat(savedaddresses): display various cards if an address user is trying to save is known
Closes: #13280
2024-01-29 14:56:24 +01:00
Noelia aaa9937124 feat(FirstTokenReceivedPopup): Created new popup `FirstTokenReceived`
- Created new popup component.
- Created related `storybook` page.
- Integration of the popup into the app.

Closes #12366
2024-01-29 12:15:48 +01:00
Godfrain Jacques ab61784816
(fix/desktop) removing custom picture is not reflected on contact's side (#13197)
* chore: bump status-go

* (fix/desktop) removing custom picture is not reflected on contact's side

This PR fixes [9947](#9947) and contains :

- Commit to fix the changing of custom picture and having the change
  reflected on contact's side
- Commit to fix the deleting of picture and having the change reflected
  on contact's side
2024-01-26 07:54:30 -08:00
Lukáš Tinkl 5080499d29 fix: cleanup and fixes after introducing the new assets model 2024-01-26 11:45:24 +01:00
Lukáš Tinkl f2482ab003 fix: fake collections shouldn't be visible in a filtering combo
teach the model about the special cased self-collections containing just
one single collectible item; we need that for the "Arrange by
collection" token mgmt feature but in all other cases it shouldn't be
treated as a collection/group

Fixes #13281
2024-01-26 11:45:24 +01:00
Lukáš Tinkl 3b99bcb29a fix: apply Custom order to main wallet view
also fix navigating into section/subsection

Fixes #13275
2024-01-26 11:45:24 +01:00
Lukáš Tinkl d7e25ea0a7 feat(Manage Tokens): implement "Arrange by collection"
- simplify the delegates (no more nested inner models/ListViews)
- persist the "Arrange by" toggles state (when needed)
- adjust the tests

Fixes #13232
2024-01-26 11:45:24 +01:00
Lukáš Tinkl 57b3b254b8 feat: Create the hidden tab (to host both assets and collectibles)
- add new Hidden tab/section to Settings/Wallet/Manage tokens page and
storybook
- extract the controller(s) to ManageTokensView.qml to share them across
the tabs
- updated the grouped UI delegate
- adjust the tests

Fixes #13201
Fixes #13188
2024-01-26 11:45:24 +01:00
Mikhail Rogachev 2abfe0fa0c
feat(ProfileShowcase): Implement profile showcase collectibles (#13103)
* feat(ProfileShowcase): Show token balences in the profile showcase

* feat: support new tokens & collectible identification

* feat: add collectibles to profile showcase preferences

* feat: dispaly collectibles for a contact

* fix: review fixes & tokens code moved to separated PR
2024-01-25 21:43:36 +04:00
Khushboo Mehta fb4e9a1ed1 fix(@desktop/wallet): Updatebthe new assets models in Token mangement, Activity filters and SharedAddressPanel 2024-01-25 12:45:22 +00:00
Michał Cieślak a4097707a3 feat(Wallet): Collectibles view adjusted to design using DoubleFlickableWithFolding
DoubleFlickableWithFolding provides foldable sections and controls
underlying grid views for both categories preventing from instantiating
too many delegates.

Closes: #13045
2024-01-25 10:05:09 +00:00
Sale Djenic 654da3e246 fix(savedaddresses): preferred chains maintained in two places
This commit prevents the user from adding an address to the saved addresses list,
if it was already added to the Wallet section. Also when the user is about to add
an address to the Wallet section, which is already added to the saved addresses
list, the app will ask whether to proceed with that action by removing the related
saved address or cancel the action.

Closes: #13109
2024-01-24 14:40:21 +01:00
Sale Djenic 18303ef49c feat(savedaddresses): implement search saved address logic
Closes: #13091
2024-01-24 14:40:02 +01:00
Alexandra Betouni 7b89fecf31 [ManageTokensView]: Restructured contents in column
Closes #13253
2024-01-24 11:44:05 +02:00
Khushboo Mehta 8da6847d42 fix(@desktop/wallet): Uses the new wallet assets in Profile showcase 2024-01-23 23:27:40 +01:00
Khushboo Mehta 087601e28e feat(@desktop/wallet): Apply flat assets model into SendModal
fixes #13016
2024-01-23 20:26:25 +01:00
Noelia 21a33cabd9 feat(Wallet/Toasts): Updated / added toasts related to community tokens received
- Added new role into ephemeral_notification_model: image.
- Added new view API to display ephemeral notifications with image and action.
- Added support to display asset or collectible image in a toast with different shape (circle or square).
- Default values assigned to the new parameters added in `CommunityTokensStore` meanwhile backend is not ready.
- Created page for `StatusToastMessage` in `storybook`.

Closes #13039
2024-01-23 18:40:28 +01:00
Richard Ramos 50e6011bcf chore: remove wakuV1 and status.prod/test fleets 2024-01-19 22:10:46 +03:00
Alex Jbanca 942482fe99 performance(ChannelsSelectionModel): Use LeftJoinModel for ChannelsSelectionModel.qml
Motivation:
ChannelsSelectionModel.qml is freezing the app when used with a live channel that's being edited because on each channel change the selection model is re-created.

The fix for this is to use the LeftJoinModel to unify the channels selection (a light model containing only keys) and the full channels model containing the channels data. On top of this, the SortFilterProxyModel is added to decorate the model with the roles expected in the UI. Another improvement is by replacing the ExpressionRole with the FastExpressionRole.
2024-01-19 15:07:19 +02:00
Dario Gabriel Lipicar 29f1bee218 feat(@desktop/wallet): implement allCollectibles module
Fixes #13235
2024-01-18 13:57:04 -03:00
Michal Iskierko f00493ec02 fix(@desktop/communities): Fix displaying token holders
Add displaying holders for ERC20 - only community members.
Add json conversions test for some holders structs.

Fix #12062
2024-01-17 13:23:59 +01:00
Anthony Laibe a6be5bd4fb feat(@wallet): confirmation and restart when changing rpc endpoint 2024-01-17 08:44:49 +01:00
Sale Djenic 1dd5f3d007 feat(savedaddresses): context menu - view activity
Part 4 of #13094
2024-01-16 18:36:30 +01:00
Sale Djenic 6eda2a4956 feat(savedaddresses): context menu - view on [network] (all available networks)
Part 3 of #13094
2024-01-16 18:36:30 +01:00
Sale Djenic 3399148f61 feat(savedaddresses): context menu - show address qr
Part 2 of #13094
2024-01-16 18:36:30 +01:00
Sale Djenic e115d5e7ce refactor(wallet): show qr popup updated to meet new ui requirements
Show Qr popup is partially refactored because of the two things:
- to meet new UI requirements (introduced in the new saved addresses design)
- to make usage of that popup more generic, that it can be easily used from different places
2024-01-16 18:36:30 +01:00
Sale Djenic a22847b000 feat(savedaddresses): context menu - copy address
Part 1 of #13094
2024-01-16 18:36:30 +01:00
Sale Djenic 919d4baf53 fix(savedaddresses): making add/edit saved address popup's content scrollable when there's no enough space for the content 2024-01-16 18:36:30 +01:00
Noelia b515f536d1 fix(OwnerToken): TOwner item footer button must be visible only for TOwner owner
Fixes #12911
2024-01-16 16:02:42 +01:00
Noelia 42a80c2c10 fix(OwnerToken): Change owner token subtitle depending on user profile
Fix #12905
2024-01-16 16:02:23 +01:00
Lukáš Tinkl 6f3a180f41 feat: Emit notifications when an asset/collectible is hidden in the settings
- emit the signal from the backend
- trigger the toast notification in QML
- update the test(s)

Fixes #12704
2024-01-16 14:00:11 +01:00
Valentina1133 eaa8e90f11
test (#13216) 2024-01-16 14:42:05 +07:00
Stefan 7f6636dc94 chore(config) rename pokt.network urls to grove.city as required
Closes #13189
2024-01-12 21:23:59 +01:00
Khushboo Mehta fb39c8c3b8 fix(@desktop/wallet): Switching networks doesn't change assets
fixes #13137, #13144
2024-01-12 20:30:42 +05:30
Sale Djenic ba5e259296 chore(savedaddresses): saved addresses improvements
Closes #13140
2024-01-12 14:23:35 +01:00