Commit Graph

337 Commits

Author SHA1 Message Date
Jonathan Rainville 16f5c2fb1a feat: add showFavoritesBar setting (placeholder for now) 2020-12-30 16:52:44 -05:00
Jonathan Rainville 825097f007 feat: add channel switcher when hitting CTRL+K 2020-12-30 15:01:51 -05:00
emizzle 7e1d7be314 feat: load installed stickers while offline
When the network connection is changed, the sticker packs are cleared and then re-loaded (either loading the offline (installed) sticker packs, or all the sticker packs from the network).

Stickers can be sent while offline, though the sticker images do not load once offline (this is likely a side effect of the bug described below).

There is a known bug in QNetworkAccessManager (https://bugreports.qt.io/browse/QTBUG-55180) that was re-introduced in 5.14.1 that does not allow us to download resources if we go offline then come back online. The workaround employed in this PR manually sets the NetworkAccessible property of QNetworkAccessManager once we have been connected back online. The NetworkAccessible property is marked as obsolete and will be removed in Qt6, so it is something that we need to be aware of when we upgrade. However the hope is that the bug has been fixed.

Close StickersPopup when disconnected from network (so that re-loading of sticker packs doesn't look out of place).

fix: set network status correctly at load

feat: stickers gas estimate async

feat: When network re-connected, any http images that were not properly loaded in an ImageLoader component will automatically be reloaded.

fix: Sticker button loading icon

chore: Bump nimqml and dotherside

NOTE: This PR uses an updated nimqml and dotherside. The respective changes should be merged first, and the commit hash should be bumped in this PR prior to merging. Relevant PRs:

[https://github.com/status-im/dotherside/pull/20](https://github.com/status-im/dotherside/pull/20)

[https://github.com/status-im/nimqml/pull/17](https://github.com/status-im/nimqml/pull/17)
2020-12-28 14:29:38 -05:00
Pascal Precht 90dfa94805 refactor: move getProfileImage API to appMain
Prior to this commit, the function was expected on a `chatView` QML object.
This has worked out so far because the places where the API is used were always
living inside `ChatLayout`.

With the new timeline however, this is no longer the case so we have to make sure
that the API is available to other views as well.
2020-12-21 14:15:08 -05:00
Pascal Precht 400b020118 fix(StatusChatInput): ensure send button is disabled when message limit is exceeded
This was missing in the previous work we've done to make the `StatusChatInput` work
as a status timeline update component.

This commit also adds an event handler which was missing to trigger the `onMessage`
event when the send button is clicked.
2020-12-21 14:14:48 -05:00
emizzle ba48b266a9 chore: re-add sticker loading UI
The sticker loading UI was removed when the StatusChatInput and friends were added in. This PR re-adds the sticker loading UI introduced in PR# 955 (https://github.com/status-im/nim-status-client/pull/955).
2020-12-18 15:34:31 -05:00
Jonathan Rainville d01c9fef79 feat: add profile pic support 2020-12-17 16:44:25 -05:00
Richard Ramos 43d9d5184d feat: close image popup on click 2020-12-16 09:17:04 -05:00
Pascal Precht f512d5063c feat: introduce StatusUpdateChatInput variation
This commit changes the `StatusChatInput` component to also be a `StatusUpdateInput`.
The latter isn't an actual new type or component, it's just a visual variation of the already
existing status chat input. That's my most of the changes are `isStatusUpdateInput` conditions
sprinkled here and there.

In addition, this commit introduces a new `chatType` which is passed to `StatusChatInput` later
in the timeline view, so it knows it has to render like a status update input.
2020-12-14 12:36:49 +01:00
Richard Ramos c2f2b7e6cd fix: default value for trx data 2020-12-11 14:04:25 -05:00
Richard Ramos 4d2e396b7f fix: display transaction data 2020-12-11 14:04:25 -05:00
Richard Ramos 02867d8627 fix: newlines on chat input 2020-12-11 14:04:06 -05:00
Pascal Precht 04bf8e7a03 fix(StatusButton): make icon color same as button label color 2020-12-10 14:40:35 -05:00
Pascal Precht 2baf56f505 refactor(Chat): move suggestions ListModel into StatusChatInput
StatusChatInput was relying on the suggestions ListModel, even though there was
no guarantee that it would exist. This is more apparent when using the component
in different context (e.g. Timeline/Status Updates). QML will throw a reference
error in this case.
2020-12-10 12:30:31 +01:00
Pascal Precht 9745205302 refactor(Chat): move send message logic out of status chat input
`StatusChatInput` ideally shouldn't rely on chatsModel and other global
objects at all. Also, when using the component in different places, it can cause
accidental sending of message when testing the component (because all the logic is already
wired up)
2020-12-10 12:30:31 +01:00
Richard Ramos cc9830268a fix: deploy contracts in browser 2020-12-09 14:19:35 -05:00
Richard Ramos b0829a4615 fix: account selector in browser 2020-12-09 14:19:26 -05:00
Jonathan Rainville 08a7baed8f feat: add OS notification and setting to switch back 2020-12-09 14:19:16 -05:00
Pascal Precht c01300a3bb fix(Chat): ensure image area is reset properly when removing images
We were only resetting the `Image` source but not the consumer facing `imageSource`
property when removing a selected image from the image area.

This cause the `imageSource` to practically never change after an image has
been selected the first time. Selecting an image another time would open the
image area, but if the image happens to be the same as the first time, the `imageSource`
practically didn't change, causing the app to render an "empty" image.
2020-12-08 17:01:32 -05:00
Richard Ramos ae30d04010 refactor: ProfileView 2020-12-08 17:01:22 -05:00
Richard Ramos ae83818eed refactor: chats view
Extract private groups, reactions, stickers and transactions procs to individual view files
2020-12-08 17:01:14 -05:00
hydrogen dacbadbed1 fix: markdown leading space 2020-12-08 16:59:51 -05:00
hydrogen 92c25433e1 fix: add missing popup 2020-12-07 10:48:55 -05:00
Pascal Precht 0957ec1ded chore: disable stickers popup when no stickers available
This is needed so that statusChatInput can work for the timeline without
exploding. Timeline doesn't need stickers
2020-12-07 13:52:25 +01:00
Pascal Precht e79c754405 refactor(StatusChatInput): fine-tune image area and prepare for status update input 2020-12-07 13:52:25 +01:00
hydrogen 2f0aab055a fix: use ModalPopup instead 2020-12-04 16:21:03 -05:00
hydrogen 323ba10a0e fix: qrcode popup should be its own modal
fixes #1457
2020-12-04 16:21:03 -05:00
Pascal Precht c5fd5b1e4d feat(StatusIconButton): make highlighted and hovered colors configurable 2020-12-04 15:53:48 -05:00
Pascal Precht 1971fe7ea1 feat(StatusButton): introduce flat mode 2020-12-04 15:52:59 -05:00
Pascal Precht c7b6c5dbac chore(StatusIdenticon): use identicon source when set explicitly 2020-12-04 15:52:51 -05:00
hydrogen fad0bb858e fix: password count and disable repeat until first is valid
cleanup
2020-12-04 15:52:23 -05:00
hydrogen f69da599ae fix: update chat view after user is blocked 2020-12-04 15:52:04 -05:00
hydrogen 8fd28dfad6 fix: check if user is blocked on profile popup
This PR is a response to @emizzle's suggested change in PR #1431 . It checks if a user is blocked before exposing certain functionality to the user in a Profile popup. The new unblock button also has a fail-safe unblock confirmation popup

disable the chat input if 1-on-1 chat recipient has been blocked.
2020-12-04 15:52:04 -05:00
Michael Bradley, Jr 62d44cb7a9 fix: add missing brace, clean up indentation 2020-12-01 16:13:23 -06:00
Richard Ramos 6494427de0 fix: notifications
- If notification is clicked and app minimized, restore app
- If app is minimized, show notifications for active chat
2020-12-01 16:17:19 -04:00
Jonathan Rainville f7cc0cf78d feat: add popup menu to add favorites on sites themselves 2020-12-01 14:07:31 -05:00
Jonathan Rainville 7242409bfa feat: enable showing a paste button in the Input 2020-12-01 14:07:31 -05:00
Richard Ramos ba06d46d68 fix: menu icons and width on wallet module 2020-12-01 14:02:19 -05:00
Richard Ramos b6f362ddb5 fix: add scrollbar to installed sticker packs
Fixes #1061
2020-12-01 13:31:22 -05:00
Richard Ramos 3f12320764 feat: checkbox style 2020-12-01 13:30:58 -05:00
Richard Ramos 0b8a6ae511 Various ui fixes on wallet
-  Account color is used in list hightlight, separator and tabs
- Popup fields are cleared when opened
- Account color is randomized when popup is opened
2020-12-01 13:29:23 -05:00
Jonathan Rainville b536707646 fix: fix notification banner showing the pubkey of group chats 2020-11-27 15:15:26 -05:00
Richard Ramos 159c82c329 feat: choose network 2020-11-26 11:44:49 -05:00
emizzle 417194e7b4 feat: Keyboard shortcuts
Add keyboard shortcuts according to https://notes.status.im/02cfVf1KQLeQU2SqrIi9tw

fix: update chat message bubbles
- Align emojis to middle of text
- Add line-height as per design
- Properly support RTL languages (right-aligned) and LTR languages (left-aligned)
- Remove unneeded non-breaking space at the beginning of current user messages
- Properly support markdown for bold, strikethrough, and italic
- Fix text being removed when in between strikethrough markdown (~~)

fix: emoji resolution update for high resolution monitors
- Emojis now use the 72x72 original set, but are down-scaled to 20x20 (in chat bubbles) or 22x22 in other places, effectively tripling their pixel density

feat: handle new lines in blockquote

Handle new lines in blockquote so that messages display correctly.

Also, add functionality when a new line is entered in to the chat input, if it's inside a blockquote, a new ">" will be added automatically. This is also handled when backspace is entered.

feat: update xss to support full qt html4 table and table-cell attributes
2020-11-26 11:33:32 -05:00
emizzle e0e1487643 refactor: replace transaction modal `reset` functionality
The transaction component's `reset` functionality was meant ot reset a form when the modal was closed. It was difficult to manage and added extra overhead for each additional transaction modal created.

Instead of using reset functions, we can use Loaders to load and destroy the modal's as they are opened and closed. We do not need to keep them in memory and then also reset their functions. It creates a smaller memory footprint to destroy the object and reload on open.

feat: load gas prediction prices asynchronously
2020-11-26 11:17:24 -05:00
Pascal Precht 7a92eaf106 feat: introduce StatusImageRadioButton 2020-11-25 14:41:29 +01:00
Pascal Precht 69fd2dc99b uiux(StatusChatInput): ensure input gets focussed when replying to messages 2020-11-24 11:20:09 +01:00
Pascal Precht f8c5002ff8 feat: enable notification message preview settings 2020-11-24 11:16:02 +01:00
Pascal Precht 60a939d29e feat: introduce StatusNotification component
This component renders a macos like notification and can be used in the
notification settings for message previews.
2020-11-24 11:16:02 +01:00
Pascal Precht 693214a940 fix: ensure letter identicon determines correct channel color
When the `StatusLetterIdenticon` received a `#channel` name that starts
with `#`, it wouldn't properly determine the channel color because of
not stripping out the `#`.
2020-11-24 11:16:02 +01:00
Pascal Precht 7005a3d7b6 fix(StatusChatInput): ensure image have rounded corners 2020-11-23 11:57:51 +01:00
Jonathan Rainville 7aef0e1710 fix: fix emoji search messing up with recents 2020-11-19 17:00:37 -05:00
Jonathan Rainville d49be78417 feat: show nickname if there is one in the mentions 2020-11-19 17:00:28 -05:00
Jonathan Rainville d4a220b051 fix: enable copying <script> but will still go away when putting emoji 2020-11-19 16:58:41 -05:00
Jonathan Rainville 1ec28bca01 feat: enable animated gifs but stop them on click and out of focus 2020-11-19 16:55:41 -05:00
Richard Ramos 9148be5718 fix: make toggle buttons great again 2020-11-19 16:54:59 -05:00
Jonathan Rainville dbf34142e1 fix: emoji category button having a white background 2020-11-19 16:54:41 -05:00
Pascal Precht 6dabd361e1 refactor: remove IconButton in favour of StatusRoundButton 2020-11-19 16:52:32 -05:00
Pascal Precht 2aac433a3d refactor: get rid off `AddButton` and make use of `StatusRoundButton` instead 2020-11-19 16:52:32 -05:00
Jonathan Rainville 537ae7991b fix: make sure the mention and emoji pickers close when pressing escape 2020-11-19 13:54:17 -05:00
Jonathan Rainville 89b45146fc fix: fix ens names that are not status having an extra `.eth` added 2020-11-19 13:54:17 -05:00
Pascal Precht 0f6d40f931 feat: introduce StatusImageModal component 2020-11-17 12:48:06 -05:00
Jonathan Rainville cecaa292ba feat: enable putting text after the shrug or tableflip 2020-11-17 09:27:57 -05:00
Pascal Precht 67face5b99 uiux: channel list fixes
Also make use of `StatusRoundButton` over `IconButton` since that's deprecated.

Closes #1115
2020-11-11 12:14:35 -05:00
Pascal Precht 6efd3daffb refactor(StatusRoundButtno): move to QML states and transitions
Also introduces a new `pressed` state which allows for icon rotation if needed.
2020-11-11 12:14:08 -05:00
Pascal Precht a66aca0900 uiux: fix channel context menu dropshadow and radius
Fixes #1113
2020-11-11 12:13:56 -05:00
Pascal Precht fc6c68232b validation and ens resolution fixes 2020-11-11 12:01:38 -05:00
emizzle 76e7897e8d fix: 1-on-1 send tx recipient show in tx preview
We were previously displaying an address in the "to" field for TransactionPreview. Instead, this is meant to be a contact view.
- Fix ContactSelector to trigger selectedContactChanged
- Fix RecipientSelector > ContactSelector to trigger resolveEns from outside call to prevent infinite loop from the above fix
- Add alias to pre-selected contact for the Contact view of TransactionPreview
- Add option to change debounce delay so that when values are pre-selected (readonly), there is no delay before resolution.
- Fix missing tx data param in walletModel.estimateGas
2020-11-11 12:01:38 -05:00
Pascal Precht 968477b43f fix: ensure `onSelectedRecipientChanged` signal is emitted 2020-11-11 12:01:38 -05:00
emizzle 5ac4162f82 feat: Re-enable contact selection in the wallet send dialog
feat: Re-enable contact selection in the wallet send dialog

Selecting a ENS-verified contact will resolve it's ENS address so transactions can be sent directly to contacts from the wallet (if and only if they have ENS enabled for their account).

feat: add EnsResolver component that shows a loader and allows automated ENS resolution from within QML
2020-11-11 12:01:38 -05:00
emizzle bc1525f513 feat: 1-on-1 chat command ENS flow
1-on-1 chat command to send and request a transaction to/from a contact with ENS enabled.
2020-11-05 11:25:45 -05:00
Richard Ramos 9d771b53dc feat: show tokens details
Fixes #910
2020-11-05 10:55:39 -05:00
Jonathan Rainville 53b0c74fd2 fix: fix tab bar buttons still having a margin when invisible 2020-11-05 10:55:27 -05:00
Pascal Precht 7a4cc9227e
fix: introduce validation for required address requests in tx previews
Closes: #1203 #1204
2020-10-28 11:07:23 +01:00
Pascal Precht a7058681fe
fix: some toast messages fixes 2020-10-28 11:07:23 +01:00
emizzle bc0855bcdc
feat: move validators outside of TransactionPreview
BalanceValidator and GasValidator have been moved outside of the TransactionPreview component, because there are some transaction modals that may not need them to be baked in to TransactionPreview. It is useful to have these components on the tx preview step only when we start the process on the preview step.
2020-10-28 11:07:23 +01:00
Pascal Precht fc5f7e8270
fix: transaction preview should not show zero address
Fixes #1199
2020-10-28 11:07:22 +01:00
Pascal Precht 0a9852758d
fix: from/to account not showing correctly
Fixes #1202

I had to revert the loader changes that switched from/to as it was causes quite a lot of logistical complexity. Instead of using Loaders, we are setting the type of account (account or contact), and it is being displayed appropriately. There is a very slight deviation from the design, however it is consistent with the design for other transaction previews.

feat: add BalanceValidator

Shows an exclamation icon next to the "from" account when the balance for the requested asset is too low.

This is useful when the user starts the transaction wizard on the TransactionPreview step.
2020-10-28 11:07:22 +01:00
emizzle e455586990
refactor: remove wei2Token in favour of wei2Eth. Essentially de-duplicated very similar procs and lessened errors
fix: SignTransactionModal - set default focused account when none is found

refactor: move token lookup from QML to nim in the toMessage procedure.

fix: 1:1 tx requests - handle case where token contract is not found (ie sending SNT from mainnet and receiving message on testnet)

feat: error checking for building a token transaction

feat: TransactionPreview - add a validation check that disallows continuation if the selected "from" account has insufficient funds
2020-10-28 11:07:22 +01:00
emizzle 8b465c20f7
start of rebase fixes
Sign and send modal is showing the incorrect "from" account in the TransactionPreview...
2020-10-28 11:07:21 +01:00
emizzle 423882df89
fix: 1:1 chat command transactions "intrinsic gas too low"
I noticed that the 1:1 chat commands were not able to send token transactions due to "intrinsic gas too low" error. I quickly realised there there were a few components missing, which have been fixed.

*feat: update the 1:1 chat commands transaction modal to allow editing of the from account and network fee*

The TransactionStackGroup was updated slightly to allow manual control of back/next actions.

Fixes #870.

*fix: Create distinct modal transaction actions*

Previously, adding `Connection`s for the  `walletModel.transactionWasSent` signal in different dialogs would cause the signal to be handled in the wrong dialog. The solution was to pass a `uuid` from the requesting dialog, and include the `uuid` in the response, so that only requests that were requested from the dialog would be handled.

*fix: update 1:1 translations*
All the translations were not being translated for me. I noticed that they did not exist in the `.ts` translation files either.
2020-10-28 11:07:21 +01:00
Jonathan Rainville ce0d717717 feat: add interactions for the downloaded elements 2020-10-27 15:27:58 -04:00
Pascal Precht 885d93ddb1 feat: introduce StatusIconTabButton component 2020-10-27 15:26:00 -04:00
Jonathan Rainville 84ff2b21a9 fix: fix a couple of QML warnings 2020-10-27 10:23:40 -04:00
Jonathan Rainville c05cc09d20 fix: fix Status button with weird margin 2020-10-27 10:23:26 -04:00
Jonathan Rainville 6f929c3665 fix: fixxstatus button margin when there is an icon 2020-10-22 12:19:18 -04:00
Jonathan Rainville 23b8c6ab57 feat: add styled browser settings menu 2020-10-21 12:06:50 -04:00
Jonathan Rainville 4371501efc feat: style mention suggestions and make it work with keyboard 2020-10-20 17:21:02 -04:00
Jonathan Rainville 676549cccd refactor: move emoji suggestion to own component and make it reusable 2020-10-20 17:21:02 -04:00
Jonathan Rainville d2a4a9cfd5 feat: implement design for the emoji suggestion picker 2020-10-20 17:21:02 -04:00
Jonathan Rainville b4425322ac feat: style account button if connected 2020-10-20 14:42:36 -04:00
Jonathan Rainville 4d2a845eda feat: add browser permission modal 2020-10-20 14:42:36 -04:00
Richard Ramos 10f8eb854b fix: address bar will react to changing tabs and enable mouse selection on text field 2020-10-20 14:42:36 -04:00
Jonathan Rainville 4844e47771 feat: add assets and history in wallet popup 2020-10-20 14:42:36 -04:00
Jonathan Rainville 3431856a13 feat: add new tab button 2020-10-20 14:42:36 -04:00
Jonathan Rainville aa2e2dea64 feat: style address bar and surrounding buttons 2020-10-20 14:42:36 -04:00
Jonathan Rainville 08f8035b31 fix: add timeout to scroll bottom at all times to make sure we do scroll 2020-10-20 13:52:13 -04:00
Pascal Precht 7577b3a2e6 feat: allow users to turn of notification sounds 2020-10-20 13:50:49 -04:00
emizzle d76667f345 feat: Add warning if sending tokens directly to contract
Fixes #936.

![imgur](https://imgur.com/XuzmdRs.png)
2020-10-19 11:45:59 -04:00
emizzle 8a7d6d3f7e fix: add image loader to collectibles images 2020-10-09 12:05:10 -04:00