The link preview model can be filtered, but the hyperlink detection needs an unfiltered model to properly highlight all URLs. This brought in the need to separate the urls model and the link previews model.
Changes:
1. Update privacy controller to react to external unfurling settings change
2. Add handler to input controller and react to external unfurling settings change
3. Small other fixes
Changes:
1. StatusToastMessage now supports dynamic content height
2. Add new StatusToastMessage type: Danger
3. Update StatusToastMessage to support RichText content
4. Fix StatusQ sanboxapp compilation
5. Add the new StatusToastMessage content to sandbox
Because of https://bugreports.qt.io/browse/QTBUG-90740 inline context menu causes tests for StatusChatInput crashing (stack overflow) on 5.15.2 (this version is used on CI). The easiest option to solve that problem is moving inline component to a separate file.
Closes: #12435
- track the import progress manually as
`root.store.getCommunityDetails(key)` can optionally return `null`
immediately if the community is not known and launch an async task
- as an additional measure, since the above async call sometimes never
finishes, add a `Timer` that unsets the internal `loading` state
Fixes#12358
This commit adds the link preview settings card in the chat input area and connects the settings to the controller.
Not included in this commit: Backend for the preserving the settings, syncing the settings and enforcing the settings on the backend side.
Whenever an url is detected in the chat input area, the link preview settings card is presented. This card enables the user to choose one of the following options:
1. `Show for this message` - All the link previews in the current message will be loaded without asking again. The current message can be defined as the message currently typed/pasted in the chat input. Deleting or sending the current content is resetting this setting and the link preview settings card will be presented again when a new url is detected.
2. `Always show previews` - All the link previews will be loaded automatically. The link preview settings card will not be presented again (in the current state, this settings is enabled for the lifetime of the controller. This will change once the settings are preserved and synced)
3. `Never show previews` - No link preview will be loaded. Same as the `Always show previews` option, this will be preserved for the lifetime of the controller for now.
4. Dismiss (x button) - The link preview settings card will be dismissed. It will be loaded again when a new link preview is detected
The same options can be loaded as a context menu on the link preview card.
Changes:
1. Adding `LinkPreviewSettingsCard`
2. Adding the settings context menu to `LinkPreviewSettingsCard` and `LinkPreviewMiniCard`
3. Connect settings events to the nim controller
4. Adding the controller logic for settings change
5. Adding the link preview dismiss settings flag to the preserverd properties and use it as a condition to load the settings.
6. Adding/Updating corresponding storybook pages
Introducing TextEditHyperlinksFormatter.qml. This component is attached to a text edit and will provide the hyperlinks formatting based on the urls detected in the text. The URL detection is implemented in the backend and this component will receive the urls as a model. The formatting is done using regular expressions and the hyperlinks are inserted automatically in the TextEdit component. The purpose of this component is to insert the hyperlinks, remove the hyperlinks and update the hyperlinks style when a specific hyperlink needs to be highlighted.
+ integrate in StatusChatInput
This component is a wrapper for LinkPreviewMiniCard and StatusChatInputImageArea. The purpose of this component is to arrange the cards in a row layout and provide scrolling behaviour. This component also has an opacity mask that will provide a fade out appearance when the items are scrolled out of view.
+ adding storybook page
+ integrate ChatInputLinksPreviewArea in StatusChatInput
Adding LinkPreviewMiniCard component based on Figma designs. This component is similar to LinkPreviewCard, but has less info and a different format.
There is also some additional functionality attached to this card: close button, reload button and hovered state. The LinkPreviewMiniCard can have multiple states, based on content type and loading state.
+ Adding storybook page
Figma design: https://www.figma.com/file/Mr3rqxxgKJ2zMQ06UAKiWL/💬-Chat⎜Desktop?type=design&node-id=22341-184809&mode=design&t=151TjdzkzI7flR4P-0
- add a popup asking the user before clicking on an unfurled link
preview
- add a checkbox for the above popup to remember the trust for such
domain
- use local Settings to persist the "trust domain" locally; for
global persistence across devices, see
https://github.com/status-im/status-go/issues/4132Closes#12388
* feat(Communities): Introduce pending states for kick, ban and unban actions
Close#11795
* feat(Communities): Show bannedMembers pending states on the UI
* feat(Communities:) make kick, ban and unban methods async
* feat(Communities): add signal about community membership status change
* fix(Communities): move membership managment to to the appropriate model
* chore: review fixes
- Button from community column.
- Button from community overview.
- Updated storybook pages (settings overview related) according to new components requirements.
Part of #12174
- use the correct background and outline colors when we are in read-only
mode
- detect active focus using `cursorVisible`; we can have focus even when
being readOnly
- do not hardcode impicit size, TextArea/TextEdit already has its own;
this way we can also properly display a one line text
which can disable or launch editting of the shard index for a given
community
- integrate it into community settings
- add a dedicated storybook page and make it also available from
EditSettingsPanelPage
Needed for https://github.com/status-im/status-desktop/issues/12197
which can configure and enable the shard index for a given community
- integrate it into community settings
- add a dedicated storybook page and make it also available from
EditSettingsPanelPage
Needed for https://github.com/status-im/status-desktop/issues/12197
1. A dropdown arrow should not be visible in the context of selecting token
2. Unnecessary padding added when expanding balances in the send modal popup
fixes #12254,#12256
Enable user action to repeat a Send transaction from the activity view
(HistoryView) and details view (TransactionDetailView).
Extend AppMain send modal entry and SendModal API to allow for selecting
all the required parameters for repeating a transaction.
Optimize update of start timestamp for activity filter only when user
attempts to open the filter panel.
Closes#12122
- Updated default value for `communityPrivilegesLevel` to `2 = Community`.
- Added `communityId` checker in `CollectiblesView`, `CollectibleDetailView` and `WalletLayout`.
Closes#12283
- Updated `CollectibleDetailsView` to show owner and tMaster token collectible types with the correct design.
- Updated `CollectiblesView` to show owner and tMaster token collectible types with the correct design.
- Modified send footer option if collectible selected is an owner token.
- Added logic to wallet rootstore to handle selected collectible data.
- Reverted changes on property selectAccount in sendModal
Closes#12172
It opens information popups when community owner token is still not created:
- From Overview / Transfer ownership button
- From Overview / How to move control node button
- Added support into storybook
Closes#12173
- Applied new design to transfer ownership popup.
- Added support in storybook.
- Added navigation to transfer ownership popup from community settings / owner token footer.
- Added navigation to transfer ownership popup from community settings / overview.
- Linked wallet send modal to the transactions popup with the needed pre-populated data.
Closes#12171
Implementing the new design for the following preview types:
- Community and channel
- General link previews (Youtube, github etc)
- Image link preview
The storybook implementation has all these links available for testing.
Missing features in the app:
- Logo (favicon)
- Community card
- Image preview details (title, domain name)
- Mint Owner token / TokenMaster token form: Changed text description for network field.
- Mint asset / collectible: Lock network. It should be the same network than the owner token one.
- Mint asset / collectible: Additional simplification / clean-up of description field.
- Added network model helper file.
Fixes#11989
The functionality for sending/receiving funds directly from chat
is currently not supported, both code and designs are outdated.
This commit removes integration part but leaves ChatCommandsPopup
component for potential future use.
Closes: #12118
Added filter in collectibles airdrop's list:
- TMaster token will be shown ONLY if user is the community owner.
- Owner token is always hidden.
Fixes#12089
* Adjust cancel button for chat delete/leave dialog
Show the Cancel button for both 1-to-1 chats
and channels. Also use the "normal" cancel
button type instead, otherwise both confirm and
cancel dialog actions are buttons in red color.
* Ask for confirmation before clearing chat history
Also move the context menu action to the
bottom section along with delete/leave chat,
since both are irreversible operations.
* Adjustments to chat context menu
- To show the vertical section separator if either
"clear history" or "delete/leave" destructive actions are
enabled.
- Show either the "clear history" or the "delete/leave"
actions in red, but not both at the same time.
* feat(Communities): Refactor token holder list item to separate file
Close#11858
* feat(Communities): Use contact details for community member info
* feat(Communities): reuse StatusMemberListItem for member token holder
* Review fixes
Co-authored-by: Michał Iskierko <61889657+endulab@users.noreply.github.com>
---------
Co-authored-by: Michał Iskierko <61889657+endulab@users.noreply.github.com>
Fixes: #11480
* hook up join popup to permission model
* fix chats not being put in the permission model
* make it work with channel permissions as well
---------
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
The actions are disabled by default. The proper visibility can be set when the backend implementation is done.
+ Fix one issue where the button tooltip was triggered when the pending state button is not visible
Also fix other smaller issues found in this panel:
- display correct user name (not just `model.displayName`)
- do not display tooltips for invisible buttons
- vertically center the action buttons
- use `SearchBox` for consistency
Fixes#11848
Fixes 2 problems, mainly visible when switching between test and non-test
networks:
- do not display network icons in single selection mode
- make really sure the default chain is Optimism
Fixes#11846
* feat(CommunityTokens): proposal of CommunityCollectibleOwner
Close#11143
* feat(Communities): implement viewProfile from token holders list
* fix: re-request community token owners after a contact get removed from a community
Changes in the Permissions design:
1. If the collectible is unique the amount input is disabled. 1 is auto-selected
2. Show `Max. 1` for unique tokens and empty string for other tokens
Changes in the Airdrop design:
1. Show `Max. 1` for unique tokens
- It adds proxy of wallet accounts only in a single place (wallet root store) and pass the tuned model through the rest of views.
- It updates `storybook` accordingly.
Closes#11829
Fixes#11817
Instead of getting revealed accounts from the community description (it's no longer available), uses the new `getRevealedAccountsForAllMembers` API. Uses it async so that we do not slow the start process. The model is updated correctly when we finish loading them.
- It adds info panel when control node is offline.
- It modifies UI texts when control node is offline.
- It updates storybook updating permissions model and allowing permission state changes.
NOTE: Only UI, no backend. There is 1 expected integration point: permissions model item `permissionState` role.
Closes#11769
* rename `fetchMessageByMessageId` to `getMessageByMessageId`
* move reply clicking logic to `StatusMessageReply`
* make message found animation faster
* `asyncGetMessageById`
This commit includes the following changes:
1. Request from backend the messages count in a specific interval as opposed to all messages timestamps in that interval.
2. Update the chart end date before refreshing the data
3. Fix metrics type parsing in community service
4. Fix a bug where the new incoming data was not processed by ChartJs without a hover event on the chart. The fix here is to manually request paint() on model changes.d
Issues found and not handled here:
1. On large communities the backend request can take 3 minutes to complete
2. CPU usage can easily go to 100% when switching chart tabs on large communities. All the requests are processed by the backend.
It seems that for `macOS`, `ParentChange` trigger was not correctly set if using specific `when` condition on desktop app (working properly on storybook). Setting it always to `true`, it does the trick and reparents footer component as expected.
Fixes#11742