Commit Graph

1113 Commits

Author SHA1 Message Date
Jonathan Rainville 6b76996bf0 fix: clear channel picker search input on open 2021-01-11 13:57:54 -05:00
Jonathan Rainville ab1a03c3b2 fix isedit missing from import form 2021-01-11 13:57:35 -05:00
Jonathan Rainville 7f2f3b599d Apply suggestions from code review
Co-authored-by: RichΛrd <info@richardramos.me>
2021-01-11 13:57:35 -05:00
Jonathan Rainville fe42cd08f8 fix: code review suggestions
Co-authored-by: RichΛrd <info@richardramos.me>
2021-01-11 13:57:35 -05:00
Jonathan Rainville 4aeeee6d9c feat: hide community stuff by default and add a setting to show it 2021-01-11 13:57:35 -05:00
Jonathan Rainville 7b03da2967 feat: enable removing member and fix invites 2021-01-11 13:57:35 -05:00
Jonathan Rainville d48043ee22 chore: cleanup community code 2021-01-11 13:57:35 -05:00
Jonathan Rainville a90a30af11 add import for a community 2021-01-11 13:57:35 -05:00
Jonathan Rainville 82405cc425 add export function and button 2021-01-11 13:57:35 -05:00
Jonathan Rainville 93376f0047 fix: fix createCommunityPopup being in edit mode all the time 2021-01-11 13:57:35 -05:00
Jonathan Rainville 7ddb93266b fix: chatLayout getting squished on first login 2021-01-11 13:57:35 -05:00
Jonathan Rainville 29a9ca4ef5 refactor: use getNickname function for nicknames fetches 2021-01-11 13:57:35 -05:00
Richard Ramos 78e7fa380c feat: display a community's member list 2021-01-11 13:57:35 -05:00
Jonathan Rainville f17bc199b5 fix group popup and up status-go 2021-01-11 13:57:35 -05:00
Richard Ramos 019f558308 ui: edit community 2021-01-11 13:57:35 -05:00
Richard Ramos 6be81c4575 ui: community popup 2021-01-11 13:57:35 -05:00
Richard Ramos 04845e3a8e fix: channel/communities list height depending on search string 2021-01-11 13:57:35 -05:00
Richard Ramos 2ed3261170 Minor UI changes for communities 2021-01-11 13:57:35 -05:00
Jonathan Rainville 2d3a870f60 wip community invitatations and more 2021-01-11 13:57:35 -05:00
Jonathan Rainville ce3252fb8f wip community 2021-01-11 13:57:35 -05:00
Jonathan Rainville 6157744d59 fix: browser setting top padding 2021-01-05 11:24:31 -05:00
Jonathan Rainville f99b91bc72 chore: hide download location for now 2021-01-05 11:24:31 -05:00
Jonathan Rainville 71477d0496 feat: implement redirect to block explorer if settings is not none 2021-01-05 11:24:31 -05:00
Jonathan Rainville 6ed0d30fc5 feat: add ethereum explorer setting in the profile 2021-01-05 11:24:31 -05:00
Jonathan Rainville ac4404c565 feat: implement using the wanted search engine in the browser 2021-01-05 11:24:31 -05:00
Jonathan Rainville 1c83ac98a0 feat: add search engine settings in the profile 2021-01-05 11:24:31 -05:00
Jonathan Rainville 6c2836ded1 feat: use browserHomepage settting as the browsers default page 2021-01-05 11:24:31 -05:00
Jonathan Rainville 36b6e76a2e feat: add browserHomepage setting that can be changed 2021-01-05 11:24:31 -05:00
Jonathan Rainville f1ea517dd6 feat: add browser settings buttons and design (mostly placeholder) 2021-01-05 11:24:31 -05:00
Pascal Precht 38654fe438 fix: ensure changeAppSection links to correct section
Fixes #1579
2021-01-05 11:24:16 -05:00
Jonathan Rainville 9007e6d5c3 feat: add setting to change the browser to open links with 2021-01-04 15:29:23 -05:00
Jonathan Rainville 89da5dd923 feat: open links in user request browser with modal 2021-01-04 15:29:23 -05:00
Jonathan Rainville bc515d2627 fix: fix chat reply color and size 2021-01-04 15:29:10 -05:00
Jonathan Rainville 37edfed446 fix: fix QML warnings 2021-01-04 15:23:23 -05:00
Pascal Precht f9b7d9dfc9 refactor: make use of Qt.locale 2021-01-04 15:16:37 -05:00
Pascal Precht eca5622439 feat: introduce Utils.formatDateTime
We already have a utility function to format time, this one formats date + time
and is used in status updates as well as channel lists.
2021-01-04 15:16:37 -05:00
Pascal Precht 0767ce2443 feat: introduce timeline
Closes #1489 #1490 #1491
2021-01-04 15:16:37 -05:00
Jonathan Rainville 1ead1c3db5 feat: show favorites bar when setting is enabled 2020-12-30 16:52:44 -05:00
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
Jonathan Rainville 6afe9088e9 fix: show notification if the window isn't focused 2020-12-28 14:29:54 -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 ad8f713f1d fix(StatusChatInput): fix sending messages by adding missing parameter to sendMessage 2020-12-22 15:13:24 -05:00
Jonathan Rainville cbbe2b46fc fix: fix generate keys identicons being all the same 2020-12-21 14:19:34 -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
Pascal Precht 8a1a265036 fix(StatusUpdate): ensure hover effect is working properly
This commit introduces some `MouseArea`s so components inside the
`StatusUpdate` component cancel it out by having a higher `z`.

Also, in some cases we need to conditionally set the `root.hovered` property
to ensure the values get inverted correctly, otherwise it causes undesired
flicker effects.
2020-12-21 14:14:48 -05:00
emizzle 6a0a75888b feat: whitelist gifs (no url extension needed)
Fixes #1377.
Fixes #1479.

Two sites have been added to the whitelist: giphy.com and tenor.com.

`imageUrls` in its entirety has been removed and instead all links are being handle through the message `linkUrls`. This prevents double-handling of urls that may or may not be images.

The logic to automatically show links previews works like this:
1. If the setting "display chat images" is enabled, all links that *contain* ".png", ".jpg", ".jpeg", ".svg", ".gif" will be automatically shown. If the URL doesn't contain the extension, we are not downloading it. This was meant to be somewhat of a security compromise as we do not want to download each and every link posted in a message just to find out its true content type.
2. If the above setting is *disabled*, then we follow the whitelist settings for tenor and giphy. This allows us to preview gifs that do not have a file extension in their url.

feat: bump status-go to the commit that supports the new whitelist (https://github.com/status-im/status-go/pull/2094), and also lets us get link preview data from urls in the whitelist. NOTE: this commit was branched off status-go `develop`, so once it is merged, and we update this PR to the new commit, we will effectively be getting status-go develop changes. We *could* base that status-go PR off of master if it makes things easier.

fix: height on settings update issue

feat: move date/time of message below links

fix: layout issues when changing setting `neverAskAboutUnfurlingAgain`

feat: Add MessageBorder component to aid in showing rounded corners with different radius
2020-12-21 14:14:32 -05:00
Jonathan Rainville 4f2a1b5e73 fix: fix scroll going back down when hitting images 2020-12-18 15:39:16 -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
Richard Ramos 3258ac8f9c feat: disconnect accounts in browser 2020-12-17 16:44:50 -05:00
Jonathan Rainville d5f3cf71a2 Apply suggestions from code review
Co-authored-by: RichΛrd <info@richardramos.me>
2020-12-17 16:44:25 -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
Michael Bradley, Jr b524c3b423 fix: restore z-index to root Item of ChatText.qml 2020-12-16 09:16:50 -05:00
Pascal Precht 344880b3a3
fix: remove explicit properties in usernamelabel 2020-12-14 14:18:46 +01:00
Pascal Precht 743858837a uiux(StatusUpdate): add separator and fine-tune margins 2020-12-14 12:36:49 +01: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
Pascal Precht 8cd95d5bfd feat: introduce StatusUpdate component
This is a new MessageComponent type that will be used in the timeline status updates
view.
2020-12-14 12:36:49 +01:00
Pascal Precht bb6bcc640a chore(MessageContextMenu): ensure chat tab is activated when attempting to send message
This is needed when accessing the context menu from the timeline status updates.
Previously, it'd only change the active channel because it assumed the user is already
in the chat view. This is no longer the case when in timeline view, so we need to make sure
we first navigate to the chat view.
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 e37cba7edd fix: etherscan link 2020-12-11 14:04:16 -05:00
Richard Ramos 02867d8627 fix: newlines on chat input 2020-12-11 14:04:06 -05:00
Richard Ramos a901351e7e fix: chat reply width when content is smaller than author 2020-12-11 13:56:04 -05:00
Richard Ramos 5ad54b057b fix: missing username 2020-12-11 13:47:51 -05:00
Iuri Matias 334d538700 update intro and keys screen to use dark theme setttings correctly 2020-12-11 12:22:23 -05:00
emizzle 5953031bfc fix: YouTube unfurling
YouTube link unfurling was not working for a couple reasons.

There were two main parts fixed:
1. QML context for messages pertaining to linkUrls and imageUrls was changed from implicit to explicit. By this, I mean that any time we referenced linkUrls/imageUrls, we were relying on the knowledge that those values would be populated by some parent context several levels up. Now, we are referring to properties that have been explicitly defined on the components. This offers the ability to reuse components, and makes reading the code and debugging much easier.
2. Error handling has been added to getting link preview data. An unhandled "error" was thrown each time a link that wasn't whitelisted was passed in, causing the app to crash. For example, when a link to a tenor gif was posted in the chat, that URL was not whitelisted, causing the app to crash.
2020-12-10 14:45:48 -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 c9f7928956 fix(Usernamelabel): ensure message time is positioned correctly 2020-12-10 12:30:31 +01:00
Pascal Precht e11139df12 feat: make `UserNameLabel` render local nick names and ENS names
In timeline status update messages we want to render the ENS name next to a
local nickname in case it exists. This commit extends the `UsernameLabel` to do
just that.

Closes #1488
2020-12-10 12:30:31 +01:00
Pascal Precht 066fd9f7e5 feat: allow message context menu to render emojis only
Closes #1492
2020-12-10 12:30:31 +01: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 a0fcb0e4c7 fix: resolve ens addresses in bookmarks 2020-12-09 14:19:49 -05: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
Richard Ramos 239b95e9a2 fix: initialize wallet paths and types, and disable deletion of non-watch accounts 2020-12-09 14:18:45 -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 426fe504b4 refactor: move `generateIdenticon` to utils 2020-12-08 17:01:14 -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 3951d0fff5 fix: ensure cursor is changed when hovering a link 2020-12-08 17:00:06 -05:00
hydrogen dacbadbed1 fix: markdown leading space 2020-12-08 16:59:51 -05:00
hydrogen 398a6b2fc0 fix: make validity error match design 2020-12-08 16:59:20 -05:00
hydrogen 12bdec6b39 fix: remove patch 2020-12-07 10:48:55 -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 c11eb69ac1 feat: introduce empty timeline component 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
Pascal Precht 7210bb1370 fix: use ConfirmationDialog when unblocking users
We've introduced a bug in https://github.com/status-im/nim-status-client/commit/8fd28dfa where a
non-existing `UnblockContactConfirmationDialog` usage was added.
This commit changes it to be a standard `ConfirmationDialog` to make the application compile
again.
2020-12-07 13:44:30 +01:00
Pascal Precht 5e422691e3
chore: remove unnecessary `enabled` prop binding in ChatText connection 2020-12-07 13:15:46 +01:00
Pascal Precht b778fa9c30 refactor(ChatText): move Connection out of component
This is done because there's gonna be a case where this connection causes errors
because the component expects `NormalMessage` to be a parent of this component.

When used in future StatusUpdates, there's no `NormalMessage`. Unfortunately,
disabling the connection based on a condition doesn't remove the error, so we have
to move this code out entirely
2020-12-07 13:06:21 +01:00
hydrogen 94b0343d04 fix: add padding to the empty chat view 2020-12-04 16:21:31 -05:00
hydrogen 4ab1d20c82 fix: use StatusIconButton instead 2020-12-04 16:21:13 -05:00
hydrogen 66d2534956 fix: update profile ui
fixes #1269

- [x] New name font size: 20 Inter Bold
- [x] Increase Name<->Address padding on 4px
- [x] Create a hover state on QR
- [x] QR Modal
2020-12-04 16:21:13 -05: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