779 Commits

Author SHA1 Message Date
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
a22c5942ff chore: update member variable name to memeberPubKey 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
a06dd403a4 fix: fix fetching messages for community chats 2021-01-11 13:57:35 -05:00
Jonathan Rainville
8c258b528b fix: fix community messages appearing in the normal chat list 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
a0c1b1552d fix: fix leaving a channel with no messages 2021-01-04 15:23:23 -05:00
Pascal Precht
0767ce2443 feat: introduce timeline
Closes #1489 #1490 #1491
2021-01-04 15:16:37 -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
Richard Ramos
ac32cb9d67 chore: remove unused imports and change mailserver verification log level to trace 2020-12-22 16:08:01 -05:00
Pascal Precht
3e5047cfaf feat: introduce isStatusUpdate flag in sendMessage APIs
When sending a profile status update, the message has to be sent to
a specific channel that has the id `@PUBKEY`.

This commit introduces a flag that controls whether the message is
sent to the currently active channel, or tot he profile status channel.

The same is done for the `sendImage` API.
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
Pascal Precht
810ce12a56 feat: make saveChat API more flexible by taking a ChatType
Previously, this API would take a flag `oneToOne` and would use it to determine
whether the chat type is going to be `1` or `2`. However, there are many more chat
types, so it's important this API supports all of them.

Since we already have an enum in place, I'm changing this function to take it instead.

In addition, it also gets a `profile` parameter which is needed to implement
the status timeline functionality.
2020-12-18 15:39:46 -05:00
Pascal Precht
d91d41cffa feat: introduce getAllContacts and getAddedContacts APIs
Primary motivator here was that the current `getContacts` APIs requries
a `ContactModel` which isn't always around. In fact, there's actually
no particular reason this APIs has to live on a model object.

However, to not break existing APIs I'm introducing a `getAllContacts`
API that returns all contacts as profiles, just like `contacts.getContacts`
does, without it being dependent on a `ContactModel`.

The same function is then used to add an API for returning all *added*
contacts as profiles.
2020-12-18 15:39:37 -05:00
Michael Bradley, Jr
13daa540e4 build: use a different colored app icon and a non-default STATUS_PORT for dev builds
By default the desktop app uses port 30305, unless a value is specifically set
in environment variable `STATUS_PORT`. For convenience of those developing the
app and running development builds, while simultaneously running production
builds (a.k.a. packaged builds, whether built locally or in CI), have `make
run` invoke `bin/nim_status_client` with `STATUS_PORT=30306`. That value can
still be overriden by manually invoking `make run` with a different value,
e.g. `make STATUS_PORT=30307 run` and `STATUS_PORT=30307 make run` are both
valid and achieve the same effect. NOTE: the port "sticks" in the database
after the first clean run, so when changing ports developers will need to
delete the data dir within their local repository, else the existing database
for dev builds will be stuck using whatever port was used previously. In the
future, we can figure out a means to always update the port setting in the
database just after the login event (but see #1505).

Also, for development builds use an icon (for the running app) that is
orangered (`#ff4500`) instead of the official blue color. This makes it much
easier to select between a running production instance and development instance
when Cmd-Tab'ing (on macOS, or equiv on Linux and Windows) through open
applications. Not all icons displayed at runtime have been changed in this
manner for development builds, just the main application icon, and that seems
to be sufficient to achieve the desired effect; though in the future we could
do similar for notification icon, menu bar icon, etc.
2020-12-18 15:37:06 -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
Pascal Precht
4354ee15ed fix: introduce chat types for Timeline and Profile
When dealing with Timeline and Profile chat data, the `HEAD~1` would break
because we're trying to access `ChatType(4)` inside our `toChat` API.

To fix this issue, we have to make `ChatType` aware of `4` and `5` which are
`Profile` and `Timeline` respectively.
2020-12-18 15:20:20 -05:00
Richard Ramos
3258ac8f9c feat: disconnect accounts in browser 2020-12-17 16:44:50 -05:00
Jonathan Rainville
5dcd401cd5 fix: fix images sometimes being null 2020-12-17 16:44:25 -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
Michael Bradley, Jr
d618d0cc53 fix: newline replacement with <br/> should replace Windows \r\n line endings also 2020-12-15 13:16:10 -05:00
Michael Bradley, Jr
1ea4af17af fix: in renderInline after escaping html replace all newlines with <br/> 2020-12-15 13:00:03 -05:00
Michael Bradley, Jr
d20f5a55eb fix: import status/libstatus/types in src/app/chat/view.nim 2020-12-11 10:09:01 -06: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
Michael Bradley, Jr
8de3a3f48f refactor: in Windows packaged build fleets.json should be in resources/
In the context of Windows packaged builds, this is consistent with other
resources needed by the application; organizing them in this way keeps the
top-level directory of Windows packaged builds clear of files that most users
should never have to see or think about.
2020-12-10 12:03:39 -06: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
Richard Ramos
16ae26aa62 fix: remove invalid condition from sendTransaction 2020-12-09 16:38:23 -04:00
Richard Ramos
cc9830268a fix: deploy contracts in browser 2020-12-09 14:19:35 -05:00
RichΛrd
87a34104c2 Update src/app/wallet/view.nim
Co-authored-by: Jonathan Rainville <rainville.jonathan@gmail.com>
2020-12-09 14:19:26 -05:00
Richard Ramos
b0829a4615 fix: account selector in browser 2020-12-09 14:19:26 -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
Richard Ramos
92bd8a1b96 fix: trigger changes in membership verification on chat update 2020-12-09 14:18:40 -05:00
Michael Bradley, Jr
10d82124fe refactor: embed Infura key at compile time
Allow environmental override at runtime. Also, in the Makefile set a free-tier
default token so that setting up an Infura account isn't strictly necessary for
community contributors to build the app, even though in our docs it should be
recommended they do so.

Core contributors should setup their own free-tier Infura account, create a
key, and set it in the environment variable INFURA_TOKEN in their environment
used to build the desktop app locally.

There is one aspect of this work that is incomplete. Ideally, in the handler
for the `login` event the relevant settings in the database should always be
updated with the resolved Infura key. However, when calling
`getSetting[string](Setting.Networks_Networks)` in the handler it causes a
segfault every time. Neither the reason for the crash nor a workaround have
been worked out at this time.
2020-12-09 12:10:12 -06: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
f69da599ae fix: update chat view after user is blocked 2020-12-04 15:52:04 -05:00
Richard Ramos
1e245a3375 fix: don't allow importing existing seed phrases / private keys in wallet and clean error messages when opening popup 2020-12-02 14:44:49 -05:00
Richard Ramos
cfb17cd85c fix: remove duplicated SNT in token list and add mouse cursor to wallet list 2020-12-02 14:35:07 -05:00
Jonathan Rainville
6e7bb6ba1c code review 2020-12-01 14:07:31 -05:00
Jonathan Rainville
6098a3e4af chore: update status-go to merged develop 2020-12-01 14:07:31 -05:00
Jonathan Rainville
724b73072f refactor: get the bookmark image from status-go instead 2020-12-01 14:07:31 -05:00
Jonathan Rainville
ea436e79c6 feat: put favicon urls in the settings when we fetch them 2020-12-01 14:07:31 -05:00
Jonathan Rainville
f7cc0cf78d feat: add popup menu to add favorites on sites themselves 2020-12-01 14:07:31 -05:00