Commit Graph

1618 Commits

Author SHA1 Message Date
Ivan Belyakov e45961232b fix(wallet): cross chain send transaction is detected now as send not
bridge
2024-07-08 15:18:57 +02:00
Igor Sirotin 8b80cfb9e3
feat: display message outgoing state (#15450)
* chore: storybook page

* feat: propagate outgoing status to StatusMessageHeader

* feat: improve message outgoing status UI

* fix: lock message `delivered` state
2024-07-08 13:26:04 +01:00
Alex Jbanca b3df5476c7 feat(dApps): Fine-tune dAppsListPopup
1. Updating alignments
2. Adding scrolling effects
3. Updating storybook page
2024-07-06 11:27:28 +03:00
Stefan 06184e4d95 fix(dapps) fail to process a transaction if missing usual fields
Updates: #15189
2024-07-05 17:48:30 +02:00
Stefan dbd96133a5 feat(dapps) update persistance from the SDK on sessions refresh
Updates: #15189
2024-07-05 17:48:30 +02:00
Stefan 94dc7b04a5 feat(dapp) disconnect wallet connect dapps
Closes: #15189
2024-07-05 17:48:30 +02:00
belalshehab 41ba77e525 fix(wallet)_: SendModel scrollbar overlaps with tokens
- Adjusted StatusListItem height to account for scrollbar visibility by adding 16 pixels to contentHeight when tags are visible.
- Set tagsScrollBarVisible to true in TokenListView to ensure the scrollbar is displayed as needed.

fixes: 13620
2024-07-05 12:14:52 +03:00
Alex Jbanca 2f050a025f feat(WalletConnect): Fine-tune connect dApp modal
Changes:
1. Align dialog with Figma design
2. Add new components for round image with badge and connection status tag
3. Add tests
4. Dapps service will now receive wallet `RootStore` as input and reuse existing models with account balance and other necessary info for account selection and chain selection
5. Minor updates in stores
6. Minor updates in WC toast messages to display app domain instead of app url
2024-07-05 01:03:23 +03:00
Roman Chornii 85846c88e9
feat(dapps): Implemented Loading state while processing URL (#15346)
Closes #14675.
2024-07-04 16:33:05 +03:00
Roman Chornii 03f8f80c56
feat(dapps): Implemented hovering and proper image color for dapps item delegate. (#15408)
Enabled walletconnect qml tests.
Closes #14760
2024-07-04 16:32:04 +03:00
Jonathan Rainville 459bbf7cc9
fix(edit): fix message contentType when editing (emoji or message) (#15364)
Fixes #15348
2024-07-03 14:08:42 -04:00
Cuteivist c934ba74ef
feat(wallet): Networks model improvements (#15305)
* refactor getters for chainIds and enabledChainIds
* simplify community chainIds getter
* simplify usage of network dto objects
* remove duplicated roles from send area
* rename network model in send module to network route model
2024-07-03 10:51:15 +02:00
Alex Jbanca 4bcda69d4a feat(WC-establish-connection): Fine-tune dApps button
1. Transform the dApps button into a combo box and add badge indicator + tooltip
2. Add storybook page
3. Adding tests
4. Minor fixes - dApps popup width, ModelUtils imports
2024-07-03 11:03:18 +03:00
Cuteivist c59ac4f3f0
feat(wallet): Wallet accounts model improvements (#15213) 2024-07-03 05:55:05 +02:00
Cuteivist e199e7f9da
fix(wallet): Added adaptor to properly refresh send modal total balances (#15409) 2024-07-02 14:22:20 +02:00
Stefan 97413d99d1 feat(dapps) implement eth_sendTransaction support for wallet
Add `Fees` section to request modal

Closes: #15126
2024-07-02 09:24:09 +02:00
Khushboo Mehta e2949ad6e7 feat(@desktop/wallet): Implements Approve spending cap
fixes #14833
2024-07-02 00:14:19 +02:00
Lukáš Tinkl 531252fd73 [UI - Swap] Update / improve AccountsSelector component to cover swap design specs
- sort accounts by total currency balance, irrespective of the tokens
held
- fixup 0 sub-balance formatting

Fixes #14779
2024-07-01 19:57:01 +02:00
Sale Djenic 7e9f680e0b chore: router v2 integration
Closes: #15204
2024-07-01 16:19:15 +02:00
Roman Chornii b005a5606e
feat(DAppsCopyUriInstructions): implemented popup with the instructions (#15354)
how to copy URI of DApps into Status app.
Closes #14677
2024-07-01 14:34:30 +03:00
Khushboo Mehta 5e8f7515cf feat(@desktop/wallet): Swap: Switch input/output params
fixes #14827
2024-07-01 11:46:07 +02:00
Lukáš Tinkl 13815bf81c [SendModal] fix pasting an address
- validate input also when pasting via the button (extract to a common
function)
- show the Paste button only when the input is empty and we have sth to
paste actually and prevent it from stealing focus
- upon clicking the Paste button, put focus on the input field
- after pasting, set the cursor past the end of the text

Fixes #14576
2024-07-01 10:21:33 +02:00
Andrey Bocharnikov 588be3c60e fix(airdrop): Incorrect default amount when airdropping a community token or setting token permission
(regression after a12a6a48)

fixes #15264
2024-06-26 21:39:08 +07:00
Stefan 92d0420449 feat(dApps) implement sign transaction for wallet connect
Uses status-go's endpoints:
- `wallet_buildTransactions` to format the transaction
- `wallet_signMessage` to sign the transaction
- `wallet_buildRawTransaction` to format the final signed transaction

Updates #15126
2024-06-26 12:00:54 +02:00
Stefan dfe53c4c7c chore(dApps) support multiple actions in DAppRequestModal
Also fix minor issue and add improvements

Updates #15126
2024-06-26 12:00:54 +02:00
Lukáš Tinkl 42533b8c61 feat:[UI - Swap] Create new TokenSelector component
- create new dedicated (asset) token selector component
- integrate it into `SwapInputPanel` and `SwapModal`
- add respective SB page and QML tests suite

Fixes #14783
2024-06-25 13:06:57 +02:00
Valentina Novgorodtceva afde836517 test: replaced old test of sending request to send/accept/decline request and remove contact 2024-06-24 16:24:57 +03:00
Alex Jbanca 901362dfc1 feat(networkSelector): Refatoring of NetworkSelector to remove backend dependency 2024-06-21 16:18:51 +03:00
Alex Jbanca 8b4cbc59a8 refactor: Refactoring of AccountSelector dropdown
The new account selector expects a generic account model. It will display all the account data if provided, including preferred chains, balance or asset balance. Otherwise it will display only the available data.
The account selector can receive an initial selection based on account address and will provide the current selected address and the current selected model item.

- Unify the account selector between communities and wallet
- Update the account selector to work with addresses instead of model indexes
- Adapt all components using the account selector or the account selection
- Move/reuse qml components involved in the account selector UI
- Remove nim logic used to handle index based account selection.
- Adding storybook page
2024-06-20 11:24:35 +03:00
Khushboo Mehta 0645ed4712 fix(@desktop/wallet): solving the issues with SwapInputPanel list in the issue
fixes  #15162
2024-06-19 17:20:22 +02:00
Michał Cieślak d700a1ad53 chore(Wallet): AssetView replaced with the refactored version
Closes: #14704
Closes: #14939
2024-06-19 16:36:18 +02:00
Michał Cieślak 38914df0f0 chore(Wallet): Integrate refactored AssetView and related adaptor 2024-06-19 16:36:18 +02:00
Michał Cieślak b12caa3f9a feat(Wallet): AssetsViewAdaptor added for preparing data for AssetsView 2024-06-19 16:36:18 +02:00
Michał Cieślak 436ae9f1f3 feat(AssetsView): business logic not related to ui removed 2024-06-19 16:36:18 +02:00
Khushboo Mehta 5c1e800f14 feat(@desktop/wallet): Add Select Input and output params to swap modal
fixes #14826, #14825
2024-06-19 12:47:26 +02:00
Lukáš Tinkl a12a6a4894 feat[UI - Wallet Stability] Create generic/reusable assets listview component
TLDR: later this should form a basic building block for a new
TokenSelector picker component, potentially replacing the current
HoldingSelector* and TokenListView components (support for collectibles
TBD as part of https://github.com/status-im/status-desktop/issues/15121)

- create reusable `TokenSelectorAssetDelegate` and `TokenSelectorView`
- add corresponding SB page, showcasing the flow/integration and the
separation of concerns between the view, adaptor and delegate layers
- add QML testcase for TokenSelectorView
- don't display crypto symbol for token balances per chain tags
- update the stores and SB pages
- add some missing formatter functions to LocaleUtils and CurrenciesStore

Fixes #14716
2024-06-18 23:09:20 +02:00
Stefan 758dbc55e5 feat(dapps) implement signing of messages
Implement infrastructure and integration with status-go to support
general session requests

Supported methods:
- personal_sign
- eth_signTypedData_v4

depends on status-go change that exposes the signing methods

Also

- support hex or utf8 encoding for personal_sign
- format the typed data for display in the modal

Tests are disabled for now, as they are crashing on CI

Close: #14927
2024-06-17 15:06:26 +02:00
Jonathan Rainville 7d5479f456 feat(messages): enable removing bridge messages as admin 2024-06-14 12:14:55 -04:00
Alex Jbanca f943440915 refactor(ProfileView): Adapt the profile view to the new `ContactDetails` component 2024-06-14 17:17:18 +03:00
Lukáš Tinkl 46b81b30a6 feat: [UI - Wallet Stability] Create Max button component
- create a reusable "Max" send button component
- use it in SwapModal and SendModal
- add some more tests in tst_SwapInputPanel.qml

Fixes #15066
2024-06-12 17:08:56 +02:00
Stefan 4d080e12aa feat(dapps) authenticate user for session request
Trigger authentication with identity of the request
Track the authentication using the identity and allow only once
Add tests for the new functionality
Minor improvements around the code

Closes #15018
2024-06-12 16:52:12 +02:00
Stefan f5b46d6972 feat(dapps) implements responding to wallet connect requests
For start support showing sign message only
Support rejecting the request
Storybook integration
Add disabled tests for the main logic and sanity UI tests.
They crash on CI only and work locally on mac. Postponed finding out why
for now.

Closes: #14927
2024-06-12 15:44:53 +02:00
Stefan 145053e34f chore(dapps) implement service tests and basic workflow tests
Abstract WalletConnectSDK to make it testable
Implement WC service pairing test
Bring back DAppsWorkflow tests back to life and add a pair modal test

Updates: #14927
2024-06-12 15:44:53 +02:00
Cuteivist 54665ffba6
chore: Fix app not starting up (#15116) 2024-06-10 14:12:50 +02:00
Cuteivist 99ba96e689
fix(wallet): Fix ens username buy (#15068) 2024-06-10 12:31:13 +02:00
Khushboo Mehta 3010fb58cb feat(@desktop/wallet): Implements Edit slippage
fixes #14829
2024-06-07 16:17:08 +02:00
Belal Shehab f0bcea0044
fix(wallet): Renamed KeyPair to key pair throughout the entire app (#15051)
* fix(wallet): Renamed KeyPair to key pair throughout the entire app

replaced the keypair occurances with key pair in the entire qml ui files
fixes: #13612 
---------

Co-authored-by: belalshehab <belal@status.im>
Co-authored-by: Valentina Novgorodtceva <valentina@status.im>
2024-06-07 16:29:09 +03:00
Lukáš Tinkl a3c9012f4a feat: [UI - Swap] Create swap input component
- new panel created: `SwapInputPanel`
- some cleanups to the needed stores
- created a SB page demonstrating the use of 2 panels and the
`SwapExchangeButton`
- created QML tests

Fixes #14781
2024-06-06 11:13:18 +02:00
Michal Iskierko a7b9a62745 fix(@desktop/communities): Lazy loading token holders
Token holders are not fetched when application starts.
They are fetched only when token details screen is opened.

Fix #14974
2024-06-06 10:18:16 +02:00
Michał Cieślak 3c73a84c77 fix(SendModal): Unblock sending collectibles flow
Closes: #15039
2024-06-05 17:52:58 +02:00
Mykhailo Prakhov 551ae70c46
fix: crash during closing the app if gif was sent/received (#15026) 2024-06-04 13:32:46 +02:00
Khushboo Mehta 3f77a16317 feat(@desktop/wallet): Implement Network selection in SwapModal
fixes #14750
2024-06-04 11:07:23 +02:00
Anastasiya Semenkevich ed1d244921 chore: object name for share profile button 2024-06-03 09:52:00 +03:00
Lukáš Tinkl c53c8bb08a fix(ProfileDialogView): Share your own profile button is missing
- do not fully deactivate the secondary button slot/loader as it's also
used by the Share button

Fixes #14995
2024-05-31 18:42:02 +03:00
Jonathan Rainville 2830f01932 Fix missing reaction and edit buttons on permissioned channels (#14933)
* fix poster actions (edit, delete)

* use canPost instead

* fix chat getting updated without community
2024-05-30 10:04:36 -04:00
Stefan 1618e6ce0a feat(dapps) implement basic DAppRequestModal
I added it to storybook for testing. There is not integration with with
the app yet.

Updates: #14762
2024-05-30 12:00:06 +02:00
Lukáš Tinkl 6973ccef6b fix: Hide ID verification buttons
- temporarily disable all ID verification flows by default for 2.29
- enabled it in StoryBook for testing purposes

Fixes #14954
2024-05-30 11:41:33 +02:00
Stefan 35b81eadf6 feat(dapps): show dapps list in wallet connect popup
Things done here:

Integrate basic functionality for wallet connect in status-go
Update the list of dapps from the SDK
Retrieve the persistence dapps list from the backend as a fallback
if there is no connection and SDK can't be initialized
Provide a basic simple view of dapps in the wallet connect popup

Closes: #14557
2024-05-30 10:57:42 +02:00
Stefan 07bc6c49df feat(dapps) attempt to fix the wallet connect abstraction
Spent too much time figuring out the puzzle of
service->module->view->QML just to call a
status-go function.

Keeping this attempt for later while moving to a
simplified Controller/Provider approach. I will
come back to the abstraction when we add tests
to use it.

Updates: #14615
2024-05-30 10:57:42 +02:00
Michal Iskierko 6d310c33cd fix(@desktop/communities): add hidden button to refresh (retrack transaction) community tokens
Issue #14699
2024-05-28 13:52:42 +02:00
Khushboo Mehta 9d8542c95d feat(@desktop/wallet): Add support for Account selection in Swap Modal using already existing AccountsModalHeader.qml
fixes #14749
2024-05-28 10:59:18 +02:00
Khushboo Mehta 81d7ca32b0 feat(@desktop/wallet): Swap modal launch flows
fixes #14628
2024-05-28 10:11:24 +02:00
Lukáš Tinkl 02a17b67ca fix(SlippageSelector): fixup custom input focus and tests 2024-05-28 10:02:20 +02:00
Lukáš Tinkl 3a4764b217 fix(SlippageSelector): remember previous custom value
do not overwrite it and display the Custom button when we click one of
the predefined buttons
2024-05-28 10:02:20 +02:00
Lukáš Tinkl 9eba61e18c fix(StatusButtonRow): move to StatusQ
- also split the SB pages
2024-05-28 10:02:20 +02:00
Michał Cieślak 824f14e220 StatusRowButton and SlippageSelector as a separate components, api simplified, fixed issue with setting values from outside 2024-05-28 10:02:20 +02:00
Lukáš Tinkl 442111c1ad feat: [UI - Swap] Create row radiobutton component with custom field
- Create row radiobutton component like the one defined in design
- It shall contain custom set of buttons
- It shall contain a Custom button that will be converted to an input
field
- Add the new component into a new storybook page
- Create necessary qml tests to cover the component logic

Fixes #14784
2024-05-28 10:02:20 +02:00
Andrey Bocharnikov 2958a03c2c fix(airdrop): fix decimals validation
* set decimal for assets on AidropSettingsPanel and HoldingsDropdown test pages
* Disable amount length validation by default
* Input: Align validation error string to the left edge
* Update validation error copy

fixes #11918
2024-05-23 19:40:33 +07:00
Lukáš Tinkl a2e85bb3eb feat: [UI - Swap] Create tag error component
- created a new component (`ErrorTag`) based on the existing
`InformationTag`, suitable for displaying a row of icon (optional), text
and (optional) button in red/danger color
- add ErrorTagPage.qml to StoryBook
- add some basic QML tests

- InformationTag: make more properties customizable, use the same
`bgRadius` consistently
- StatusSmartIdenticon: some fixes for the MouseArea hover/click
behavior

Fixes #14792
2024-05-23 08:55:10 +02:00
Valentina1133 dd2d64043b
chore: object names added for link previews elements (#14869) 2024-05-22 09:35:25 +07:00
Jonathan Rainville e01d8fe422
fix(links): open status links in the browser when not shared urls (#14845)
Fixes #14844

The problem was that links to status.app that are not shared links were still considered shared urls, because our util function can only check if it contains `status.app`.

The solution is two fold:
1. If there are Link Previews, I ask the link preview for the type of Link. If it's a normal link, I just open it.
2. If there are no Link Preview for that link, we call `parseSharedUrl` as before, but now we handle the failure by opening in the browser because we can assume that it's a normal link.
2024-05-21 14:14:38 -04:00
Lukáš Tinkl a6c897929a chore: Remove custom rowData method from NIM's models
- Some NIM's models define additional (not part of the
QAbstractModelItem API) method rowData to allow access to model's data
on UI side
- The same job can be done relying fully on public QAbstractModelItem
API using ModelUtils utility. It gives full transparency if we need
nim's model or other like ListModel replacement in tests/storybook
- propagate `tokensStore` to unbreak the Browser's wallet menu

Fixes #14805
2024-05-20 18:02:20 +02:00
Stefan ee72ec7aee feat(dapps) add DAppsService component and ConnectDAppModal
Implement the initial Pairing user workflow and disconnect option for
the first session.

Also

- rename pairing modal accordingly (`PairWCModal.qml`) to make room for the proper
`ConnectDAppModal.qml`
- basic tests for service helpers
- update storybook to reflect the new user workflows

Closes #14607
2024-05-20 15:09:57 +02:00
Stefan 7cd97a0051 chore(dapps) move dApps UX into its own DAppsWorkflow component
Storybook: also automate related workflows for faster iteration

Also extend the inspector utils to handle Loaders and Popups

Updates: #14607
2024-05-20 15:09:57 +02:00
Stefan 78775d3d69 chore(dapps) move wallet connect service code outside popups
Updates: #14607
2024-05-20 15:09:57 +02:00
Valentina1133 03712af3b9
chore: add object names for links preview and add button (#14853) 2024-05-20 17:11:37 +07:00
Michał Cieślak a153279e77 feat(StatusLetterIdenticon): make useAcronymForLetterIdenticon true by default 2024-05-17 23:43:42 +02:00
mdias 694b3c3488
fix: The emoji color selector animation is out of bounds (#14841)
Issue #14744
2024-05-17 13:43:54 -04:00
Lukáš Tinkl 93d808d020 fix(CommunityMembershipSetupDialog): wait for the Join Permission response only
- introduce a new boolean property `checkingPermissionToJoinInProgress`
and use it to enable/disable the Join (share addresses) button when
joining a community
- we don't have to wait for both join and channels permissions check to
finish, as the former is much faster
- renamed `joinPermissionsCheckSuccessful` to
`joinPermissionsCheckCompletedWithoutErrors` to avoid confusion

Fixes #14680
2024-05-17 14:26:55 +02:00
Cuteivist b771ac6aed
feat: Change optimism network short name (#14766) 2024-05-16 18:37:54 +02:00
Alex Jbanca 27bfe22af0 fix: Reload contact info whenever the profile dirty flag is dropped
We need to manually request the contact information again because the contact object is not live
2024-05-16 11:13:13 +03:00
Jonathan Rainville 753825a40e
chore(status-go): up status-go for the fix to hidden channels being unread (#14793)
Fixes #14421
2024-05-15 16:31:57 -04:00
Cuteivist d70f2dcf23
feat(@wallet): Show lightbox when clicking collectible (#14168) 2024-05-15 11:36:56 +02:00
Lukáš Tinkl 94ca1ff22a fix: ENS keycap display issues
- run the user's display name (ENS name) thru the `Emoji.parse()`
function as that will convert the potentially UTF-16 encoded name
containing emojis into an image

Fixes #12290
2024-05-13 16:20:54 +02:00
Roman Chornii 6caea1c56e
fix: Messages: Change unfurl image crop aspect ratio to align with Open (#14682)
Graph

Fixes: 13379
2024-05-13 12:48:42 +03:00
Stefan 1f60410db8 feat(dapps) implement wallet connect URI input
Other changes

- start Wallet Connect SDK using web engine after wallet is ready
- source WC project ID from the constants in nim
- close list when opening the `ConnectDappModal`
- remove the old POC modal instantiation
- rename ConnectDappPopup to Modal for consistency
- move specific dapps related user settings to their place in the component
- add DAppsStore to be used for dapps abstraction

Updates #14556
2024-05-13 10:33:16 +02:00
Jonathan Rainville 685b83d56d chore: update icons to use the new multicoloured Status logo
Fixes #14531
2024-05-08 10:22:34 -04:00
Khushboo Mehta bc1aa3b934 fix(@desktop/wallet): Send tag in SendModal doesn't show correct value
fixes #14448
2024-05-07 13:39:45 +02:00
Lukáš Tinkl 3fd96986da fix: Hovering community in the profile showcase leads to crash
- messing around with the DropShadow layer lead to a nasty crash
somewhere deep inside Qt mouse event handlers

Fixes #14596
2024-05-03 18:57:02 +02:00
Lukáš Tinkl 22a9ca72b3 fix(StatusCard): fix some visual glitches
- correct propagation of hover events, fixes card flicker
- improve the ugly thick border
- token icons are now correctly rounded
- fix text descent lines are cut of ("y" and "p" truncated at the
bottom) due to excessive clipping, set correct max line count
- fix tag outline not being visible in dark mode
- add/update the corresponding SB page, with more controls to play
around with the different params

Fixes #14555
2024-05-02 20:25:13 +02:00
Stefan 913041d5d9 chore(dapps) foundation for dapps page in storybook
Updates #14317
2024-05-02 09:47:30 +02:00
Sale Djenic dd104960ba feat(walletconnect): initial code organization
Closes #14395
2024-05-02 09:47:30 +02:00
Andrey Bocharnikov dc1edfc9f4
fix(chat_section): fix preview for pinned messages with images/stickers (#13684) (#14549)
* Add preparedMessageByID function
* fix warning
2024-05-01 10:51:27 +04:00
Alex Jbanca 85066fccc8 fix: Hide members count from community cards when the community is encrypted and the community info is not available 2024-04-30 14:03:38 +03:00
Lukáš Tinkl ccc1539178 fix(Community): community invitation is missing intro and logo
- fix a binding loop warning for `implicitHeight`
- fix word wrap for long texts with no word breaks

Fixes #14536
2024-04-29 18:23:33 +02:00
Lukáš Tinkl 0c8231a6b6 fix: can't join an encrypted community
- fix the corner case and allow the user to join a community without an
explicitely stated "Member" permission
- enable/disable the Share/Join/Save buttons when the permission to join
check is ongoing, or when the permission check failed
- display tooltips over the disabled buttons explaining why it's disabled
- always display the eligibility button floating on top of the
(scrollable) contents

Fixes #14473
Fixes #14299
2024-04-26 10:50:26 +02:00
Lukáš Tinkl 78acdca225 fix(ProfileHeader): don't overflow the title
- calculate the text width correctly, taking into account all the
contents (verifications icons, edit button) and also the margins

Fixes #14462
2024-04-26 10:46:55 +02:00
Lukáš Tinkl 38d6b694fb fix(ProfileContextMenu): do not display extra Send CR when pending
- do not display the "Send contact request" menu item when we've already
sent one; happened because now we have an enum for the contact request
state
2024-04-26 10:46:55 +02:00
Lukáš Tinkl eae2489254 fix(ProfileDialogView): wrap bio in a scroll view
- also trim the leading/trailing whitespace
- fixes long bio (mainly due to linebreaks) pushing down everything
below and also overflowing the preview
- adjust SB page to include such example bio

Fixes #14463
Fixes #14465
2024-04-26 10:41:48 +02:00
Cuteivist afcf84f705
fix(wallet): Load activity details (#14516) 2024-04-25 12:01:26 +02:00
Jonathan Rainville 1da3c26da1 feat(edit): enable editing the message in an image message
Fixes #13255

It seems like all our code already supported it, we just blocked it in QML just in case 🤷
2024-04-19 10:12:13 -04:00
Anastasiya Semiankevich b8fec4636e chore@StatusSyncCodeInput: add object names for buttons 2024-04-18 19:52:02 +03:00
Lukáš Tinkl 5b242c6dd8 fix: do not display the thousands separator when editing
- teach `userInputLocale` about `Locale.OmitGroupSeparator` option which
discards the said thousands separator
- some more fixes to other inputs to do the same, and align what the
validators do
- StatusAmountInput: discard illegal characters, and reuse the same
locale for the validator
- StatusAmountInputPage: make it possible to select a different locale

Fixes #14165
2024-04-17 14:04:03 +02:00
Lukáš Tinkl ea40a6b11f feat(SharedAddresses): display the eligibility bubble in edit mode too
- previously, we'd display the bubble only when joining the community
- now we display it also when editing the shared addresses, with a
slightly different wording (eg. "You're an admin" -> "You'll be a
member"), hinting the user about the future change
- remove the usage of `ModuleWarning` as we don't want its delay or
transitions here, replace it with a regular red `Rectangle` + text

Fixes #13397
2024-04-15 20:24:34 +02:00
Cuteivist 7cb59576a1
fix(wallet): Update amount to send decimal handling (#14399) 2024-04-15 07:28:29 +02:00
Ivan Belyakov 6ba0cdfafa feat(wallet): removed allAddresses flag as redundant 2024-04-12 15:18:19 +02:00
Sale Djenic 42a60642e8 fix(wallet): user is unable to authenticate using biometrics
Fixes #14404
2024-04-12 07:46:00 +02:00
Lukáš Tinkl e363dd1109 fix(SortOrderComboBox): do not display icons or bold(er) font in delegates
- cleanup indentation (older QtC versions don't like the nullish
coalescing operator `??`)
- fixup SB pages
2024-04-11 21:48:16 +02:00
Igor Sirotin 795b999ad8
chore: extract move gifs module (#14315) 2024-04-09 19:01:24 +01:00
Michal Iskierko 62c48a0072 chore(desktop): upgrade status-go
Issue #14044
2024-04-08 11:22:51 +03:00
Anastasiya Semenkevich a8a943bec9 chore: add object name for TokenBalancePerChainDelegate 2024-04-05 16:39:49 +03:00
Alexandra Betouni 53db09412a feat(ProfileShowcasePopup): Adding interactions in delegates
Closes #13702
2024-04-05 12:31:11 +03:00
Stefan 6762630e51 fix(SendModal): fix not showing tokens in the holding selector
The previous attempt to control the order of delegate intantiation
and avoid qml warnings didn't work for this case (Loader with injected
properties). Therefore, I reverted to the last working version.
2024-04-04 17:25:30 +02:00
Stefan ee23cce575 fix(SendModal): fix various issues with SendModal
- Fix errors when switching between assets and collectibles tabs
  - Fix by controlling the order of instantiation between model and
    delegates not to mix models and delegates from different sources
- Fix size errors
- Various improvements

Updates: #14212
2024-04-03 16:23:32 +02:00
Stefan f9782d6863 fix(SendModal) missing icons for assets
In case of assets the symbol doesn't have an icon representation
in resources, hence we use the image of the asset itself.
Same fix used for header and delegate

Closes: #14218
2024-04-03 10:07:47 +02:00
Dario Gabriel Lipicar cd3a1180b0 fix(@desktop/wallet): properly handle collectible groups in send modal
Fixes #14080
2024-04-02 12:55:08 -03:00
Lukáš Tinkl cb6c633e69 feat(SharedAddressesAccountSelector): update account sorting
- implement sorting of the wallet accounts by the number of tokens (aka tags) and
then by alphabet
- due to the delegate complexity here and usage of nested models, keep
track of the tags count separately and outside of the model
- this will be improved later on as part of the complete sort/order
design described in https://github.com/status-im/status-desktop/issues/14192

Fixes #14101
2024-04-02 16:03:09 +02:00
Michał Cieślak b91cf08066 feat(SharedAddressesAccountSelector): Support for collectibles in account's delegate tags
Closes: #14102
2024-04-02 12:18:36 +02:00
Alex Jbanca 684fb787a6 fix(PRofileShowcase): Fixing conflict merge error 2024-04-02 12:07:22 +03:00
Cuteivist 7fa3771e4e
feat(wallet): Handle collectibles details unknown community (#14206) 2024-04-02 10:23:20 +02:00
Alexandra Betouni 4af2a97358 [ProfileShowcase] Updated delegates as per design + added web tab
Closes #13421
Closes #13606
2024-04-02 10:21:13 +03:00
Alex Jbanca 1d45243bc1 feat(ProfileShowcase): Integrate profile perspective selector 2024-04-02 10:16:17 +03:00
Alex Jbanca 77933cc732 feat(ProfileShowcase): Add profile perspective selector component 2024-04-02 10:16:17 +03:00
Lukáš Tinkl b191caaec6 feat: Add missing eligible to join tag in CommunityMembershipSetupDialog
- implement the eligibility check in C++, returning the highest possible
role the user would be allowed to join under
- enable/disable the "Share" button based on the above permissions check
- remove all the locally placed components, access teh popup only via
Global/Popups
- calculate the `accessType` internally based on the permissions present
- update the eligibility as the async check for permissions is finished
- fix the permissions panel background color
- partially revert the share/finish/cancel buttons behavior; it must be
one button due to StatusStackModal limitations
- fix some other minor UI issues or differences to current Figma designs
- adjust SB, add the possibility to play around with different
permission models

Fixes #14100
2024-03-29 16:11:59 +01:00
Lukáš Tinkl 5af2f28aa2 fix[Onboarding] Password screen is not correct
- hide the "Current password" label when creating a new password
- fix margins inside the keycard popup
- some minor UI fixups according to Figma

Fixes: #14214
Fixes: #14177
2024-03-29 16:10:50 +01:00
Mikhail Rogachev 839f2c6b21
Feat: New showcase models for a contact (#13998)
* Feat: New showcase models for a contact

* feat(ProfileShowcase): Integrate the new profile showcase backend

* fix(Storybook): Fix ProfileShowcaseModelsPage

* fix: fetch only requested profile showcase data

Support PR for https://github.com/status-im/status-go/pull/4982

* feat: Load and validate profile showcase for a contact in two steps

* fix: fetching criteria for profile showcase collectibles

* fix: review fixes

---------

Co-authored-by: Alex Jbanca <alexjb@status.im>
2024-03-29 12:43:49 +01:00
Noelia 4144e374a6 fix(JoinCommunity): Add missing state ONLY private permissions and NOT MET (#14164)
* fix(JoinCommunity): Add missing state ONLY private permissions and NOT MET

- Modified `becomeMemberModel` in store to provide all member permissions.
- Modified permissions model filter to only discard  permissions that are private and NOT met.
- Updated `storybook/PermissionsModel` with new only private permissions and added new model option in corresponding pages.

Closes #14104

* fix(JoinCommunity): Text position when all channels hidden

Updated text position when `allChannelsAreHiddenBecauseNotPermitted` in community join process
2024-03-28 10:59:40 -04:00
Mykhailo Prakhov 7804d4ca39 fix: set correct permision UI 2024-03-28 10:59:40 -04:00
Khushboo Mehta 5473e3b14e chore(@desktop/wallet): Simplify the wallet networks service
fixes #12717
2024-03-28 11:47:33 +01:00
Sale Djenic d9945b39dc fix(wallet): displaying L1 gas cost in UI
Fixes #13892
2024-03-28 10:36:09 +01:00
Sale Djenic f8bb8e2588 fix(communities): join community button text instead of share all addresses to join text in membership setup dialog
Closes #14172
2024-03-28 08:19:24 +01:00
Sale Djenic 9b8401b641 fix(communities): keycard authentication marked automatically as authenticated
Closes #14174
2024-03-28 07:38:42 +01:00
Sale Djenic 3e76fa6179 fix(communities): when only keycard accounts selected (and 1 keycard), authentication is not triggered
Closes #14175
2024-03-28 07:38:28 +01:00
Noelia 67f0f38cf9 fix(CancelCommunityMembership): Added popup instead of directly cancelling request
- Added dialog instead of calling directly to the cancel method.
- Updated `Cancel` button format according to figma in `CommunityMembershipSetupDialog`.

Closes #14097
2024-03-28 07:33:34 +01:00
Michał Cieślak 59453e1189 fix(CommunityJoiningAndAddressSharingDialog): Intro text width fixed 2024-03-26 14:03:29 +01:00
Michał Cieślak 0557977aa2 chore(Communities): CommunityIntroDialog renamed to CommunityMembershipSetupDialog
Closes: #14144
2024-03-26 14:03:29 +01:00
Michał Cieślak 0985346342 chore(CommunityIntroDialog): Fix storybook page 2024-03-26 14:03:29 +01:00
Cuteivist 1deb5e86e5
fix(wallet): Add token data when new token is added (#14061) 2024-03-25 18:31:01 +01:00
Sale Djenic 10a8469b9e fix(communities): deltas between designs and build for join token gated community flow
This commit:
- improves selection of addresses to reveal
- keeps the selection state for the popup lifetime
- brings higher granularity in terms of signed requests by keypairs
- meets new requirements from the latest related Figma
- merges edit shared addresses feature and request to join community features
into a single component, cause the flow is logically the same, with the only
difference that when editing revealed addresses we don't show the community
intro screen

Fixes at least points 3 and 4 from #13988
2024-03-25 14:16:32 +01:00
Lukáš Tinkl 9ef513b419 fix(TokenManagement): Asset balance threshold value not reflected in main wallet view
- take the balance threshold value into account when presenting the
assets in the main wallet view
- additional fix from Emil for storing the threshold value
- storybook fixes to display the correct `currentCurrencyBalance` values
based on the address/wallet filters and mocking the threshold values
using TransactionStore

Fixes: #14017
2024-03-23 11:37:37 +01:00
Valentina Novgorodtceva 05df5d1bce chore: object names added for wallet right tab buttons and filter button 2024-03-22 14:00:19 +03:00
Jonathan Rainville 19c283be8b
fix: fix warning and inconsistencies with spectating (#14041)
Kinda fixes #13957
2024-03-20 13:58:46 -04:00
Stefan 631ae08a8d fix(wallet): pick a random emoji in the wallet new account modal
Updates #13715
2024-03-20 11:56:03 +01:00
Mykhailo Prakhov a586c6d352
feat(desktop/communities): View community member messages functionality (#14002)
* feat(desktop/communities): View member messages functionality
2024-03-20 11:50:10 +01:00
Noelia c93a8d2c6f feat(SettingsDirtyToastMessage): Extended with additional information component in bottom
- Updated layout using `ColumnLayout`.
- Added additional text component on bottom according to new designs.
2024-03-20 09:31:34 +01:00
Noelia d35c0bd3d1 feat(ProfileShowcase): Align UI save flow according to backend response
- Added loading state in dirty toast message.
- Added store connections in `MyProfileView` and save loading logic.
- Added toasts notifications.

Closes #13950

a
2024-03-20 09:31:34 +01:00
Noelia 1d15398ea7 fix(ProfileSectionStore): Only instanciated once
- Removed `ProfileSectionStore` instance from `CurrenciesStore`. Only needed some certain accesses to the `profileSectionModule`.
- Added strict type in `CommunitiesView`.
2024-03-20 09:31:34 +01:00
Lukáš Tinkl a6172eb1de fix(FoldableHeader): do not display the switch if the model is empty
makes no sense to be able to arrange by community/collection if the the
underlying model is empty
2024-03-19 14:18:55 +01:00
Lukáš Tinkl be7e09ba97 fix(CommunityAssetsInfoPopup): fix missing OK button
needs the import for `standardButtons: Dialog.Ok`
2024-03-19 14:18:55 +01:00
Lukáš Tinkl 864be0ad37 fix(ShareProfileDialog): contents spills outside of dialog
- make the contents scrollable using a `StatusScrollView`

Fixes #13967
2024-03-19 13:54:30 +01:00
Michał Iskierko 9ed38bddb7
13291 hide channels (#13876)
* feat(@desktop/communities): Hide channels if the user is not permitted to view and hideIfPermissionsNotMet is set

Extend chats model with channel permissions info and hideIfPermissionsNotMet.
Visibility of chat item is based on: member roles, channel permissions, hideIfPermissionsNotMet.
If all channels from category are hidden, category item is also hidden.
If all chats in community are hidden, infomration label is displayed.

Issue #13291

* chore(@desktop): Upgrade status-go

Issue #13291
2024-03-18 13:33:07 -04:00
Lukáš Tinkl affdccc100 chore: update base and English plural translations
- extract/refresh translatable strings
- fix missing English plurals
- some fixes in KeycardInit, was using non-plural forms

Fixes #13840
2024-03-18 09:43:06 +01:00
Stefan 086180b47a chore(settings) align password screen with design
Changes required:

- Fixed text colors
- Fixed text expressions
- Added dividers
- Added labels

Closes #13893
2024-03-15 17:52:59 +01:00
Alex Jbanca 3a3c3204fa
fix(ProfileShowcase): Add live preview support in the profile view (#13972)
* fix(ProfileShowcase): Add live preview support in the profile view

* Update ui/imports/shared/views/profile/ProfileShowcaseView.qml

Co-authored-by: Lukáš Tinkl <lukast@status.im>

---------

Co-authored-by: Lukáš Tinkl <lukast@status.im>
2024-03-14 19:31:38 +02:00
Lukáš Tinkl d25cefcc2e fix(StatusBaseButton): adapt to handle actions when it is disabled
- add an `interactive` property as a drop-in replacement for `enabled`;
the UI looks "disabled" but can still display e.g. a tooltip or some
loading animation
- add the ability to display a tooltip
- remove DisabledTooltipButton and replace it with a regular
`Status(Flat)Button`, using the above new features
- update storybook with the new `interactive` switch

Fixes #10185
2024-03-14 18:00:27 +01:00
Jonathan Rainville 634591b69f
feat: hook reactions in read only channel and fix issues (#13913)
* feat: hook reactions in read only channel and fix issues

Fixes #13523

* fix crash and missing emoji popup on group chats

* code review fixes
2024-03-13 15:13:41 -04:00
Michal Iskierko 86907b170c feat(@desktop/communities): handling bridge message replies
Issue #13258
2024-03-13 13:39:28 +01:00
Noelia f31d6131c3 feat(CollectiblesView): Always visualize section header if community minted collectibles are present
- If only minted collectibles, section header visible. Otherwise, if only regular collectibles, section hidden.
- Updated header used to `FoldableHeader`.

Closes #13315
2024-03-13 12:50:20 +01:00
Lukáš Tinkl 5b1f2e8de2 fix(Profile flow) Validate nickname on edit
- align the nickname validation and min/max limits with displayName

Fixes #13591
2024-03-12 15:55:31 +01:00
Igor Sirotin a6f5f0bc94
fix: prevent forever chat loading animation (#13929)
* prevent animation if loading not started

* prevent scrolling to verification/contact request messages

* fix ac click behaviour

* remove CURSOR_VALUE_IGNORE. cleanup logs
2024-03-12 14:24:55 +00:00
Noelia bb76962b69 fix(PasswordView): Dark mode background fix
Closes #13549
2024-03-11 16:14:48 +01:00
Stefan 9202cce3f5 feat(activity): add incremental updates to current activity filter
Switch the activity filter to use the new session-based API that
deliver incremental updates to the current filter.

Drop the old quick win listening for individual change events and
use the unified API instead.

The new transactions (on-top) trigger the old "new transactions" buttons
that trigger reset of the current filter and the top new transacitons
highlighted.

Highlight mixed changes (not new on top) as they come in

Highlight new changes on filter reset

Closes #12120
2024-03-11 11:39:59 +01:00
Anthony Laibe 115610fcf6 feat(@wallet): unknown token 2024-03-11 11:29:32 +01:00
Noelia b92974ffff feat(ProfileShowcase): Display counter in `In showcase` section header and elements limit
- Added counter in showcase header.
- Added placeholder when limit reached and section expanded.
- Added placeholder when limit reached and section collapsed.
- Added green animation when section collapsed and element added.
- Disabled showcase delegate context menu when limit reached.
- Dynamic tooltip offset center added.
- Added model changes tracker to track the in showcase count.

Closes #13507
2024-03-07 16:10:46 +01:00
Michal Iskierko 473fdc9fbb fix(@desktop/messages) Bridge messages will always have headers
Fix #13736
2024-03-07 09:05:01 -05:00
Cuteivist 3188250b1d
feat(wallet): Add asset sorting by 1 day fiat change (#13826) 2024-03-07 14:47:17 +01:00
Lukáš Tinkl 1e13d8f122 fix: [Profile flow] Nickname not updated after it was added, edited or removed
- trigger a reload of contact details when the secondary popup has been closed

Fixes #13870
2024-03-07 13:48:23 +01:00
Sale Djenic ccd5a416ce fix(wallet): erc20 transfer with multiple path
Fixes: #13759
2024-03-06 14:06:51 +01:00
Alex Jbanca 4d6082e806 feat(ProfileShowcase): Updates based on comments 2024-03-06 14:49:54 +02:00
Alex Jbanca 07484cb15c feat(ProfileShowcase): Simplify ProfileShowcasePanel API and connect to the new models
1. Fix `EmptyShapeRectangleFooterListView` visibility and positioning after ListView items are animated out of view
2. Update `ShowcaseDelegate` to remove modelObject dependency. The UI properties needed will be received from parent
3. Update `ProfileShowcasePanel` to remove the previous logic involving rows move and visibility change. There is no need now for two specialised delegate components (one for in showcase and one for hidden). The delegate is still configured outside of this component because the model rolenames need to be mapped to the delegate properties. The common delegate logic is implemented in the `ProfileShowcasePanel` and only the model mapping is needed from parent component.
3. Update all `ProfileShowcase*Panel` to impement the new API
4. Remove all `*ShowcaseDelegate`. The delegate is simple enough to be configured at once in the Panel
2024-03-06 14:49:54 +02:00
Alex Jbanca 5a3bca9a51 feat(ProfileShowcase): Remove assets tab from settings and profile dialog
The assets tab will be implemented later on. It's not needed for this milestone
2024-03-06 14:49:54 +02:00
Khushboo Mehta 3118931ab8 fest(@desktop/wallet): Update Desktop UI to correctly call the router and send
fixes #13797
2024-03-06 12:31:16 +01:00
Ivan Belyakov da226b75aa feat(wallet): resize saved address popup to remove network selection
when ENS name is resolved. Resolve ENS name before used in SendModal.
UI tweaks:
  - red stroke on address input in case of error
  - smaller tick for validation address input
  - added validation spinner to address input, removed from the button
  - handled tab key to move focus between inputs
2024-03-06 08:52:23 +01:00
Lukáš Tinkl b623c8fb2b fix(chat input): should be disabled if user is not able to post
- extend `isUserAllowedToSendMessage` to also cover
`Constants.chatType.communityChat`
- let `admin` always satisfy the permissions
- hide the add emoji/reaction button instead of disabling it when the
permissions are not met
- adjust the error msg to better reflect the reality (tokens vs.
permissions)

Fixes #13777
2024-03-05 18:13:29 +01:00
Dario Gabriel Lipicar 96d9acf1f0 feat(@desktop/wallet): implement jump to activity details screen from collectible details activity tab
Fixes #13721
2024-03-05 07:41:20 -03:00
Sale Djenic cbfbce3f62 fix(wallet): naming of first and subsequent wallet accounts
Closes #12693
2024-03-04 13:31:25 +01:00
Lukáš Tinkl d12490ab18 feat(Profile flow): Respond to/review an incoming CR
- implement the new "Reviewing contact request" popup & flow
- adjust storybook

Fixes #13519
2024-03-04 10:56:10 +01:00
Lukáš Tinkl fda1d37c5b feat(Profile flow): ID verification flows (incoming/outgoing)
- Send/request ID verification
- Reply to incoming ID request
- Review ID verification reply
- adjust SB and add shortcuts to trigger the various states of the ID
verification flows

Fixes #13709
Fixes #13745
Fixes #13747
2024-03-04 09:56:30 +01:00
Ivan Belyakov 09c0f1b0c8 feat(wallet): ReceiveModal dialog UI tweaks
Closes #13386
2024-02-28 17:23:46 +01:00
Dario Gabriel Lipicar 10c44b8038 feat(@desktop/wallet): implement collectible details activity tab
Fixes #12311
2024-02-28 13:07:48 -03:00
Ivan Belyakov eac2f498de fix(wallet): Fix missing 'Community minted' section in AssetsView regression 2024-02-27 12:50:22 +01:00
Noelia 3425102990 feat(ProfileShowcase): Adds drop area in collapsed headers
- It adds an additional right component to `FoldableHeader.qml`.
- It adds hidden button component in `hidden` foldable header.
- It adds visibility buttons component in `in showcase` foldable header.

Closes #13595
2024-02-27 11:48:10 +01:00
Ivan Belyakov be218c22cd feat(wallet): Send modal community tokens always grouped and listview sections changed
Closes #13430
2024-02-26 17:21:52 +01:00
Lukáš Tinkl 4d3745d4b2 feat(Profile flow) Mark as ID verified / remove verification
- implement two new actions and popups to directly mark a contact as "ID
verified" and remove the verification thereof respectively
- do not hardcode the secondary button inside ProfileDialogView and make
it a Loader
- make the CommonContactDialog contents scrollable

Fixes #13711
2024-02-26 16:11:56 +01:00
Khushboo Mehta 085bf762a5 feat(@desktop/wallet): Update token details view
closes #12373
2024-02-23 13:03:28 +01:00
Anthony Laibe aed61b68b1 feat(@wallet): sepolia default 2024-02-23 11:52:40 +01:00
Noelia 1dc03624d6 feat(ProfileShowcase): Drop area behaviour / design when sections expanded
- It updates `ProfileShowcasePanel` with new drop area design adding shadows, changing drop areas design and sizes.

- It adjusts `ShowcaseDelegate` according to design, ie: heigh and background colour on dragActive.

Closes #13509
2024-02-23 10:13:13 +01:00
Noelia f31f01d64b feat(ProfileShowcase): Enable add more accounts component
- Added new additional footer component in `EmptyShapeRectangleFooterListView`.
- Enabled more accounts component in profile showcase assets and collectibles panel.

Closes #13590
2024-02-22 17:09:36 +01:00
Cuteivist fae86bcb8d
feat(@wallet): Show community activity (#13627) 2024-02-22 15:41:19 +01:00
Cuteivist 3126973cfc
feat(activity): Add navigation to tx details (#13634) 2024-02-22 15:41:13 +01:00
Sale Djenic 34f801231c feat(savedaddresses): saved address details popup implementation
Within this commit a new popup is introduced with the requested UI effect.

Closes #13096
2024-02-22 11:03:10 +01:00
Lukáš Tinkl 343cfa0982 feat(Profile flow): Block/unblock user
- implement block and unblock user popups with optional "Remove contact" and "Remove ID verification" check boxes
- emit (combined) toasts

Fixes #13522
2024-02-21 19:39:05 +01:00
Lukáš Tinkl e46f6c311c feat(Profile flow): Remove a contact
- implement the new remove contact confirmation popup

Fixes #13521
2024-02-20 20:11:56 +01:00
Khushboo Mehta eaef030bc8 feat(@desktop/wallet): Send dialog: sizing and layout rules to limit dialog height jumping between states
fixes #13377
2024-02-19 17:23:20 +01:00
Cuteivist 7dedb223a2
feat(@desktop/activity): Handle token received notification (#13447) 2024-02-19 14:58:20 +01:00
Lukáš Tinkl 4a3eb4ce18 feat(Profile flow) Mark as untrusted
- add new popup for marking a person as untrusted
- optionally display checkboxes to remove ID verification or the contact
- emit toasts

Fixes #13520
2024-02-19 14:25:35 +01:00
Cuteivist 2e6af7aa51
feat(@desktop/settings): Integrate token advanced settings with backend (#13487) 2024-02-19 13:09:07 +01:00
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 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
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