Commit Graph

200 Commits

Author SHA1 Message Date
hydrogen df9ac80eb9 feat: loading spinner while resolving ens name 2020-11-18 12:06:13 +01:00
Pascal Precht 0f6d40f931 feat: introduce StatusImageModal component 2020-11-17 12:48:06 -05:00
Jonathan Rainville 6869a3ddfb feat: whitelist the characters possible for the channel names 2020-11-16 13:03:08 -05:00
Jonathan Rainville dbc1d26966 fix: protect against XSS in chat names 2020-11-06 16:23:09 -05:00
Jonathan Rainville e6ae202510 fix: fix profile popup header 2020-10-27 10:23:26 -04:00
Jonathan Rainville 6c96ee4356 fix: don't close group info popup when closing profile popup 2020-10-21 10:37:33 -04:00
Jonathan Rainville 6906ddcb61 fix: make sure admin status is up to date when opening the popup 2020-10-21 10:37:33 -04:00
Jonathan Rainville fc4a179dc7 fix: fix group info popup layout and clean it up 2020-10-21 10:37:33 -04:00
Jonathan Rainville d83ca70bef fix: don't close group info popup when closing profile popup 2020-10-21 09:40:12 -04:00
Pascal Precht 85f18057ae fix: don't allow users to start chats with themselves 2020-10-16 10:44:42 -04:00
Pascal Precht 12a7d7c067 feat: introduce new chat input component
Closes #757
2020-10-07 14:03:12 +02:00
hydr063n 0ed41902a8 fix: change arrow button to 'start chat' for join public chat modal 2020-10-05 10:52:11 -04:00
Richard Ramos cdcb928a0c refactor: simplify ProfilePopup usage 2020-10-02 12:48:58 -04:00
Richard Ramos 2fb9d569f7 refactor: open profile popup 2020-10-02 12:48:58 -04:00
emizzle 6d5bd52d0a fix: Estimating gas prevents transaction modal continue
Fixes: #926.

Gas estimations were not being decoded correctly (indicated with "error getting gas price predictions" in the console) and were preventing transaction dialogs from continuing past the step containing the GasSelector component. This affected mainnet only, because in testnet we have hardcoded gas prices (for when the gas prices on mainnet are insane) which is why it was not apparent in testnet.

fix: Contract address not showing correctly
This was caused by `getStickerMarketContractAddress` being moved to `utilsView` but not updated in QML
2020-10-02 12:33:28 -04:00
emizzle 64b0a11757 feat: add sticker loading UI
Closes: #586

Previously, loading sticker packs and stickers would show a lot of blank and non-interactive content.

Now, stickers and sticker packs have grey circles to indicate loading. Additionally, the sticker market button (+) shows a loading indicator until the sticker packs are loaded.
2020-09-29 15:19:42 -04:00
Jonathan Rainville ba0af727dc refactor: add funciton to change the username instead of using a global 2020-09-29 14:04:32 -04:00
Jonathan Rainville 6a57eeccb2 feat: implement new design for the nickname popup 2020-09-29 14:04:32 -04:00
Jonathan Rainville 577dbba831 fix: fix code review and fix deleting colon closes emoji popup 2020-09-29 14:04:13 -04:00
Jonathan Rainville cf734796d1 feat: enable adding emojis from the suggestion list 2020-09-29 14:04:13 -04:00
emizzle 5eabcd2725 feat: Add loading and reload states to stickers/packs
Related to: #586.

Adds a loading state to stickers, so that a loading indicator appears while the sticker is being downloaded from IPFS.

In the case of a network failure or timetout, a reload button is shown instead. Once network is restored and the reload button is clicked, the image is reloaded from the network, going through the same lifecycle of showing the loading state first.
2020-09-29 13:27:50 -04:00
emizzle 1fc0e26a0f fix: update tx modal validity 2020-09-29 13:27:29 -04:00
Jonathan Rainville 88de02b1dc fix: fix color and warning 2020-09-23 17:19:43 -04:00
Iuri Matias bcb8970817 cleanup qml 2020-09-23 15:52:27 -04:00
Iuri Matias 0da4633318 cleanup qml 2020-09-23 15:52:27 -04:00
Iuri Matias a3441fb45f refactor channel suggestion list into one component 2020-09-23 15:52:27 -04:00
Iuri Matias fbf8302474 fixes for qml layout 2020-09-23 15:52:27 -04:00
Iuri Matias 52d394ded4 update join chat suggested channels to include the full list of categories and channels 2020-09-23 15:52:27 -04:00
Jonathan Rainville eb7b9c2383 chore: fix qml warnings in a couple of components 2020-09-23 15:16:34 -04:00
Jonathan Rainville 26dd599e06 chore: fix comment typo
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
2020-09-23 15:15:22 -04:00
Jonathan Rainville 6fc56b5035 fix: fix spaces and line breaks disappearing when pasting 2020-09-23 15:15:22 -04:00
Pascal Precht fac0e50e37 feat: introduce StatusIdenticon components
This component introduces `StatusLetterIdenticon`, `StatusImageIdenticon`
and `StatusIdenticon`.

- `StatusLetterIdenticon` renders an identicon with a single letter based on a
name.
- `StatusImageIdenticon` renders an actual image based on an identicon URL
- `StatusIdenticon` is a composition of the former both, but with a loading mechanism
  to decide which should be rendered

The commit also ensures all of these components are used respectively throughout
the application.
2020-09-23 08:52:30 +02:00
Pascal Precht c992cce9f5 chore: update translations
Fixes #900
2020-09-22 09:36:05 -04:00
Jonathan Rainville f6199ac179 fix: fix undefined string warning in group info popup 2020-09-21 12:52:05 -04:00
Jonathan Rainville f359f7c45d fix: fix nickname not refreshing in contact lists for groups 2020-09-21 12:52:05 -04:00
Jonathan Rainville fd93650b23 refactor: remove duplicated methods in chatModel and use profileModel 2020-09-21 12:52:05 -04:00
Jonathan Rainville 0c0baf29e8 fix: small fixes to the profile popup 2020-09-21 12:52:05 -04:00
Jonathan Rainville 6e357cb5e2 feat: show nickname in the modal from the contact list 2020-09-21 12:52:05 -04:00
Jonathan Rainville bc3b7a5533 feat: enable setting a nickname to a contact 2020-09-21 12:52:05 -04:00
Jonathan Rainville 697ae321d2 feat: add nickname modal 2020-09-21 12:52:05 -04:00
Jonathan Rainville c59ba5f24d feat: add Nickname entry in the profilePopup 2020-09-21 12:52:05 -04:00
Pascal Precht f0939a01fe chore: update i18n 2020-09-18 17:23:35 -04:00
Iuri Matias 7d1bae9b96 fix use text instead of label 2020-09-17 15:32:59 -04:00
Pascal Precht e0adc3056e chore: update translations
Closes #801 #841
2020-09-17 15:16:09 -04:00
emizzle 7c520a8032 fix: close tx modals after sending 2020-09-17 12:22:15 -04:00
emizzle c9c1dce6ea fix: Sticker market dark mode support 2020-09-17 12:22:00 -04:00
emizzle 7b0d3c496c fix: exception handling in mutli-threaded transactions
Currently, exceptions thrown during transactions or gas estimation that were spawned in another thread are not being propagated, due to a limitation in nim (see https://nim-lang.org/docs/manual_experimental.html#parallel-amp-spawn).

This means any exceptions from status-go were not propagated correctly and would cause the app to crash. This includes entering the wrong password when trying to send a transaction.

The issue was addressed by passing a `success` variable by reference, which is set to false if an exception was thrown by status-go.
2020-09-17 12:21:29 -04:00
Jonathan Rainville bcbcd13611 refactor: use profileSettingsFile QtProperty instead of profile directly 2020-09-16 16:58:55 -04:00
Jonathan Rainville db9472bc0b refactor: change settings to use a filename instead 2020-09-16 16:58:55 -04:00
Jonathan Rainville 23ca5f9930 feat: make settings user dependant and clean settings uses 2020-09-16 16:58:55 -04:00
Richard Ramos e4ffc897d7 fix: code review + reset sticker pack pending state 2020-09-16 14:22:29 -04:00
Richard Ramos d0bca7afa6 fix: show stickers as pending while trx is being mined
Fixes #885
2020-09-16 14:22:29 -04:00
Richard Ramos e75958d78d fix: code review 2020-09-16 14:22:29 -04:00
Richard Ramos 83b0c8057e fix: code review 2020-09-16 14:22:29 -04:00
Richard Ramos 0091fded3a feat: toast messages for sticker and ens trxs 2020-09-16 14:22:29 -04:00
hydr063n b479dba001 feat: open modal when user left clicks on message containing image 2020-09-14 14:38:41 -04:00
emizzle 2c7dd929ad feat: enable token transactions
Fixes #788.
Fixes #853.
Fixes #856.

refactor: gas estimation and transaction sends have been abstracted to  allow calling `estimateGas`, `send`, and `call` on the contract method (similar to the web3 API).

Moved sticker pack gas estimation and purchase tx over to the new API

*Sticker purchase:*
 - gas estimate is done using new API and debounced using a timer

*Wallet send transaction:*
 - tokens can now be sent
 - gas is estimated correctly for a token tx, and debounced using a timer

***NOTE***
1. If attempting to send tokens on testnet, you must use a custom token as the token addresses in the pre-built list are for mainnet and will not work on testnet.
2. The new API should support all existing gas estimates, send txs, and calls. The loading of sticker pack data, balance, count, purchased sticker packs, etc, can be moved over to the new API. Almost all of the `eth_sendTransaction`, `eth_gasEstimate`, and `eth_call` could be move over as well (that's the idea at least).
2020-09-11 12:01:08 -04:00
Pascal Precht 2cd6260515 uiux(Chat): make entire contact item clickable when starting new chat
Closes #847
2020-09-08 14:24:12 -04:00
Pascal Precht a9fe6eb3b2 fix(Chat): use qsTr() over qsTrId() due to non-existent i18n id
Fixes #848
2020-09-08 14:23:40 -04:00
emizzle d8b0145eb3 feat: Add Sticker purchase transaction modal
Add gas estimate for sticker pack purchase.

Update transaction for sticker pack purchase.

Add GasValidator component which validates gas is selected correctly and displays an error message if not. This component is not visible until it is not valid (at which point the valdiation error message is displayed).

In a future PR, need to:
1. estimate gas for token txfer (sendTransaction) via a normalised method for estimating gas for EthSend
2. move sticker pack purchase to use an EthSend object so gas can be estimated and tx sent
2020-09-04 16:13:33 -04:00
Richard Ramos 1d0e4fe2cf feat: disable reply on stickers and make sticker images smooth 2020-08-28 11:11:08 -04:00
Jonathan Rainville 1592115dde feat: change other components to use Address where needed 2020-08-27 17:48:03 -04:00
Jonathan Rainville 0c686c3fcf chore: run qstrConverter script 2020-08-27 17:09:37 -04:00
Jonathan Rainville 5f119e1ead feat: enable removing emoji reactions from the context menu 2020-08-27 16:34:35 -04:00
Jonathan Rainville 99ca0e9e55 feat: enable adding reactions to chat messages from the menu 2020-08-27 16:34:35 -04:00
Iuri Matias 9b6ae2e6ad close join channel popup when clicking a suggestion 2020-08-19 14:39:45 -04:00
Richard Ramos f6cf197983 fix: pixelated icons on the menu 2020-08-17 11:57:32 +02:00
Pascal Precht 6d0d0fb2aa feat: introduce dialog to confirm removal of contacts
Closes #632
2020-08-13 14:40:03 -04:00
Pascal Precht 04ff3393fa feat: introduce confirmation dialog for blocking contacts actions
Closes #632
2020-08-13 14:40:03 -04:00
Richard Ramos 477f5aa460
feat: display empty state when user has no contacts 2020-08-11 08:39:10 -04:00
Richard Ramos edbb183242
fix: show ens and alias on profile popup header 2020-08-11 08:39:10 -04:00
Richard Ramos e96f3ed47f
fix: display ens names with correct format in all screens 2020-08-11 08:39:07 -04:00
Pascal Precht 17396c85cb feat(GroupInfo): allow user to visit group member profile page
Closes #638
2020-08-10 09:42:47 -04:00
Jonathan Rainville 3cb88d0cfa
feat: add profile section to the context menu 2020-08-05 12:14:46 +02:00
Richard Ramos 459de8cd1c
fix: display emojis on input textarea 2020-08-04 10:14:57 -04:00
Jonathan Rainville 983d258a9a
feat: add support for recent emojis
(cherry picked from commit 07ccf8f74ee7b37652ccedbddd6dfdaa5908a846)
2020-07-30 10:45:56 -04:00
Jonathan Rainville 13d2cf73fb
feat: add emoji search
(cherry picked from commit 3cc9a98ce584a48f6c430a57126bd548e9dedc7e)
2020-07-30 10:44:07 -04:00
Jonathan Rainville 549f1ff7f2
feat: categorize emojis in the menu and add category buttons
Signed-off-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2020-07-30 10:04:08 -04:00
Jonathan Rainville 3d04076910
feat: update emoji list to use the new categorized list
Still shows everything in the same page, but now they are ordered and can be categorized
2020-07-30 10:03:55 -04:00
Jonathan Rainville 9654f937f2 fix: fix all remaining QML warnings 2020-07-23 15:59:18 -04:00
Jonathan Rainville c71f5f1a07 fix: fix dark theme colors for chat and profile 2020-07-23 15:59:18 -04:00
Jonathan Rainville 911aac92de feat: add onClicked to Emojis and use a Model to show them 2020-07-21 11:41:19 -04:00
Jonathan Rainville b829acb3c4 chore: re-run qstr converter 2020-07-17 11:55:01 -04:00
Jonathan Rainville 851eb82026 feat: make channel list compact in compact mode 2020-07-16 10:32:27 -04:00
emizzle 69ba3c4468 feat: add support for purchased sticker packs 2020-07-15 15:53:48 -04:00
emizzle ac7deb3af0 feat: Un/install free sticker packs in sticker market
Sticker pack details retreived from contract:
 - pack data decoded from contract response
 - data contains contentHash which, once decoded, contains an IPFS identifier
 - futher pack data in EDN format is downloaded from IPFS
 - the EDN info is decoded in to a StickerPack

List of available packs from contract are obtained separately from list of installed contracts (stored as a setting in Status-go).

Sticker market contains dynamic list of sticker packs. The sticker button shown for each pack has all states defined (in the design) for all UI states (ie bought, free, installed, pending, etc)

Add modal popup showing sticker pack details and list of stickers to be un/installed. Contains a "larger" version of the sticker pack button with many differnt UI states defined.

Uninstallation of a sticker pack removes those sticker pack's stickers from the recent sticker list and persists the list

Simplify the view model by including stickers, instead of setting an "activeStickerPackId" property. This allowed for display of sticker pack stickers to be displayed in the modal popup separately from the sticker packs shown in the market.
2020-07-15 15:53:48 -04:00
Jonathan Rainville 92f5a9ca5c feat: add dark theme colors and new properties for it 2020-07-14 12:37:17 -04:00
Richard Ramos 06efb531cb feat: adds QML debounce library 2020-07-14 11:56:44 -04:00
Richard Ramos 649023bacf feat: support message replies 2020-07-10 20:09:15 -04:00
Jonathan Rainville 3d19e9ed74 feat: add profile popup for the empty chat view 2020-07-10 15:39:56 -04:00
Jonathan Rainville b3b7047fe1 feat: add invite friends modal 2020-07-10 15:39:56 -04:00
Jonathan Rainville ff2ed712f2 feat: improve Copy button to copy directly and have an active state 2020-07-10 15:39:56 -04:00
Richard Ramos 4ee0d78cb6 feat: using threads for resolving ENS usernames 2020-07-08 13:53:21 -04:00
Jonathan Rainville 1eb1d3d41c chore: run transform script to change qstr to qstrid 2020-07-08 12:37:41 -04:00
Iuri Matias 49e76d17bf use SVGimage for emojis 2020-07-06 13:59:47 -04:00
Jonathan Rainville 4c2e50ae47 fix: fix wrong emoji being posted for flags and the emojis not elliding 2020-07-06 13:59:47 -04:00
Jonathan Rainville 6e8c371063 feat: enable adding the clicked emoji to the chat input 2020-07-06 13:59:47 -04:00
Jonathan Rainville 8aa8474cb1 feat: add emoji button and style them to have the hover and right color 2020-07-06 13:59:47 -04:00
Jonathan Rainville 4371e37b27 feat: show the all the emojis in the popup 2020-07-06 13:59:47 -04:00
Jonathan Rainville a529d729ea feat: change Theme to Style to enable changing Theme 2020-07-03 09:59:14 -04:00