Commit Graph

153 Commits

Author SHA1 Message Date
Pascal Precht f581f49dcf refactor: make use of StatusQ `StatusAppLayout`
This first step in leveraging StatusQ components. This sets up the overall
app layout, allowing us to use other sub view layouts provided by StatusQ,
such as `StatusAppTwoPanelLayout`.

This commit primarily touches the application navbar, leaving layout changes
in dedicated views for future commits.

Partially closes #2688
2021-06-30 15:08:26 +02:00
Iuri Matias f8e5b25a09 refactor: extract messages from chat view
refactor: extract messages from chat view

refactor: extract messages from chat view

refactor: extract messages from chat view

update references to messageView

fix setup

remove duplicated method
2021-06-22 15:12:01 -04:00
Iuri Matias 599bf731fb refactor: extract 'channels' to its own file 2021-06-18 12:12:01 -04:00
Iuri Matias 6bcdb9ca54 refactor wallet views
add getSettings methods to src/status

fix issue with calling getSettings; document issue

remove most direct references to libstatus; document some common issues

remove most references to libstatus wallet

add mailserver layer to status lib; remove references to libstatus mailservers

remove libstatus accounts references

move types out of libstatus; remove libstatus types references

remove libstatus browser references

refactor libstatus utils references

remove more references to libstatus stickers

remove references to libstatus constants from src/app

remove more libstatus references from src/app

refactor token_list usage of libstatus

refactor stickers usage of libstatus

refactor chat usage of libstatus

remove libstatus references from the wallet view

remove logic from ens manager view

fix issue with import & namespace conflict

remove unnecessary imports

refactor provider view to not depend on libstatus

refactor provider view

refactor: move accounts specific code to its own section

fix account selection

move collectibles to their own module

update references to wallet transactions

refactor: move gas methods to their own file

refactor: extract tokens into their own file

refactor: extract ens to its own file

refactor: extract dappbrowser code to its own file

refactor: extract history related code to its own file

refactor: extract balance to its own file

refactor: extract utils to its own file

clean up wallet imports

fix: identicon for transaction commands
Fixes #2533
2021-06-17 16:11:01 -04:00
Jonathan Rainville 933dbe9586 feat: add activity center switch to show and hide the bell icon 2021-06-15 13:14:19 -04:00
Richard Ramos 086653ac52 fix: code review 2 2021-06-10 19:33:22 -04:00
Richard Ramos efae828087 fix: code review 2021-06-10 19:33:22 -04:00
Richard Ramos b89f2fddc4 feat: add pin messages button to edit channel popup
Fixes #2597
2021-06-10 19:33:22 -04:00
Eric Mastro 21e6affa98 feat: edit community channels
Closes #2344.

Add ability to edit name, description, and private fields of a community channel.

feat: Display community channel description
Ensure the width of the description does not surpass the context menu and instead wraps to the next line.

feat: After channel is created, set it as the active channel
2021-06-09 10:19:26 +10:00
Jonathan Rainville 4a407d9204 fix: fix not enough ETH for gas validation error on open 2021-06-04 14:02:51 -04:00
Jonathan Rainville c817cadca1 add contact requests to the chat badge 2021-05-28 13:31:33 -04:00
Jonathan Rainville a90257e141 feat: add setting for notifications on requests 2021-05-28 13:31:33 -04:00
Eric Mastro 24d8e429b8 feat: edit communities
Allow editing of Community name, description, image, colour, and access.
2021-05-28 19:08:19 +10:00
Richard Ramos fbbfa30b1b Allow image drag/drop in communities 2021-05-05 17:13:02 -04:00
Jonathan Rainville 1b491df9b4 feat(CommunityBackup): remove backup banner after clicking on it 2021-04-29 13:05:49 -04:00
Eric Mastro 0850835b34 fix: Send Message button not working in profile popup
Fixes: #2364

The Send Message button click event was erroring due to a refactor that had been done to allow for changing app sections.

This has been updated to follow the current way to change app sections.

fix: “Send Message” button crash in communities
This required switching from communities to normal view.

fix: crash when clicking channel link in community message
When a message in communities contains a link to another channel (ie #otherchannel), the search for this channel needed to be updated to also search for the channel by name, allowing for switching between channels within a community by message link. Additionally, when in a community, if the channel was located in a normal chat, it will switch the view to the normal chat after being found.
2021-04-29 12:36:58 -04:00
Iuri Matias 093f7cff7a re-disable experimental features 2021-04-23 07:44:55 -04:00
Pascal Precht bda1582ea0 uiux: ajdust app tab icons to have the correct size
Closes #1843
2021-04-20 15:15:17 -04:00
Pascal Precht c804bb243a feat: store appearance settings globally across accounts
As discussed in https://github.com/status-im/status-desktop/issues/2144#issuecomment-817791172 and https://github.com/status-im/status-desktop/discussions/2145, it's no longer desired
to have different appearance settings across multiple accounts.
Instead, the appearance setting should apply globally to all accounts,
essentially bypassing the individual setting stored in status-go.

This commit introduces a new global setting called `theme` which,
at the time of introducing this commit, can be either:

0 => Light
1 => Dark
2 => System

Because those enum values matches the `AppearanceContainer.Theme` enum,
this commit removes it completely and simply relies on QML's built-in
`Universal.[Light|Dark|System] variants respectively.

Closes #2144
2021-04-19 13:53:14 +02:00
Pascal Precht aeedc87368 feat: introduce global settings
This commit introces global settings that apply across accounts used
inside the application. This is useful when settings like the selected
locale should b the same across all accounts.

Closes #2144
2021-04-19 13:53:14 +02:00
Jonathan Rainville 1983fa79aa feat: improve ens search in wallet send by showing the result 2021-04-14 14:39:11 -04:00
Pascal Precht 5d59cb3870 fix(ui): use proper color for badge border 2021-04-14 10:54:20 +02:00
Jonathan Rainville 00b793c11c feat: move chat button under communities 2021-04-13 18:02:02 -04:00
Jonathan Rainville a9cae5b96e fix: fix compact message hover when a popup is opened
Fixes #2187
2021-04-13 14:43:48 -04:00
Jonathan Rainville a337b293da feat: show community context menu on Community button 2021-03-30 15:53:32 -04:00
Jonathan Rainville 038ea033c9 feat: implement new dark theme colors for menu and more
Fixes #2094
2021-03-26 15:28:06 -04:00
Pascal Precht dc9de1968f fix: enforce locale provided by appSettings
Prior to this commit, we would only set the translation package for the
application's engine when `appSettings.locale !== "en"`.

This is problematic because it seems that `engine` is already provided with
a system default that may not be `en`. In practice, this means that, initially,
engine is loaded with, say `de`. `appSettings.locale` might be `en` but because
we're only loading the correct translation package when it's **not** `en`,
the application will stay in `de`.

Changing the language to `en` at runtime is fine, however once the application
is restarted, `engine` is again initialized with some other possible system default.

It seems that we should *always* load the translation packge when `appSettings` are
loaded.
2021-03-25 16:37:13 -04:00
Jonathan Rainville c5c348b0b1 feat: add back status link whitelisting and public chat links 2021-03-17 16:09:23 -04:00
Iuri Matias 98eea14da8 fix default mode 2021-03-17 15:25:15 -04:00
Jonathan Rainville d0f141c1b8 fix: fix appSetting not defined by removing sounds from login 2021-03-17 13:35:15 -04:00
Pascal Precht 053c7fdcf3 fix: enforce compact mode
Since https://github.com/status-im/status-desktop/commit/93668ff75
we're hiding the setting to change appearance for compact normal mode
of the UI. For now, compact mode is the new default (reasoning is unclear
at this point).

Prior to this change, most likely many users are still using the
normal mode configuration, so we have to enforce compact mode for
those.
2021-03-17 13:34:42 -04:00
Iuri Matias 9621230e6d update default settings 2021-03-16 16:51:14 -04:00
Iuri Matias 9c404a1047 show browser favourites bar by default 2021-03-16 16:51:14 -04:00
Eric Mastro f1e83f74bc feat: drag and drop images
Allow up to 5 images to be dragged and dropped in to one-on-one chats and in the timeline. Can be combined with the existing upload button. The upload file dialog has been changed to allow multiple selections. Drag and dropped images adhere to the following rules, with corresponding validations messages:
- Max 5 image
- Image size must be 0.5 MB or less
- File extension must be one of [".png", ".jpg", ".jpeg", ".heif", "tif", ".tiff"]

Drag and drop and uploaded images are now also deduplicated.
2021-03-16 13:51:37 -04:00
Pascal Precht eefd56dd28 fix(Communities): ensure app remembers hidden community intro banners
Fixes #1960
2021-03-15 14:35:31 -04:00
Jonathan Rainville 844a61798a fix: fix left tab line not following height of parent
Fixes #1948
2021-03-04 17:02:03 -05:00
Jonathan Rainville 64d38b6049 feat: implement redesign of communities on the left tab 2021-03-03 16:45:23 -05:00
Richard Ramos 6211d094dc fix: set hide on close as default 2021-02-25 15:40:46 -05:00
Jonathan Rainville 744a16a0f4 fix: fix errorSound not defined 2021-02-23 11:57:33 -05:00
Richard Ramos fd8a84eb9d fix: minimize on close 2021-02-23 08:53:37 -05:00
Richard Ramos b43122d7f3 feat: use stacklayout for chat messages 2021-02-23 08:53:31 -05:00
Richard Ramos 6207c8af53 fix: appSettings were being overwritten due to defaultAppSettings periodically executing sync() 2021-02-18 16:40:21 -05:00
Pascal Precht 3d8f7ad463 refactor: Move TimelineLayout into Component 2021-02-18 16:37:42 -05:00
Jonathan Rainville 0e699cac65 chore: run translation scripts 2021-02-18 15:23:58 -05:00
ace-smart 5014513c17 Adjusted compass tab icon size and badge border color. Fixes #1843 2021-02-16 14:48:04 -05:00
Pascal Precht dd195431a5 chore: improve channel switch perf
Having the Timeline component loaded eagerly made switching
between channels rather slow because it always tries to read
the current message list from the chats model.

This commit changes the layout so that the timeline layout container
is only loaded conditionally when indeed activated.
2021-02-15 16:22:05 -05:00
staked-smart-ace ac6d55ae2d Updated main tap's profile badge. Fixes #1619 2021-01-18 15:27:56 -05:00
staked-smart-ace 1f3be224b8 Updated main tap badge. Fixes #1619 2021-01-18 15:27:56 -05:00
staked-smart-ace 2de8faf5a5 Updated main tap badge. Fixes #1619 2021-01-18 15:27:56 -05:00
staked-smart-ace c84806aa4e Adjusted badge positions as designs. Fixes #1619 2021-01-18 15:27:56 -05:00
Jonathan Rainville 7230cdf7c7 feat: only show profile pics for contacts by default
But add a profile switch to show them for everyone
2021-01-15 10:53:45 -05:00
Pascal Precht 085f5901ac uiux: revamp advanced settings panel
Closes #1623
2021-01-14 15:41:14 -05:00
Pascal Precht 7102596b3f fix(Timeline): make reactions works
This commit makes reactions in the status timeline work.
There are two things prior to this commit that are broken:

1. The logic that opens the reaction context menu always expects
   and instance of `chatsView` because it tries to calculate a users
   nickname. Such an instance isn't always available in that context, so
   the nickname logic has been moved to `appMain` for now, removing that
   dependency and therefore making it work in both, the chat view as well
   as the status view.
2. While 1) makes the context menu work, it turns out that adding and
   removing reactions inside the status timeline is still not working.
   The reason for that is, that the reactions component maintains its own
   `messageList`, which isn't aware of the fact that reactions for messages
   coming from chats of `ChatType.Profile`, need to go into a dedicated
   message list for `ChatType.Timeline`.

In other words, reactions are sent and removed from message in messagelists
that don't actually exist.

This commit fixes both of these things by ensuring the message lists
maintained by reactions are timeline aware. Also ensuring updates are
done correctly.
2021-01-14 15:33:46 -05:00
Pascal Precht 38654fe438 fix: ensure changeAppSection links to correct section
Fixes #1579
2021-01-05 11:24:16 -05:00
Jonathan Rainville 89da5dd923 feat: open links in user request browser with modal 2021-01-04 15:29:23 -05:00
Pascal Precht 0767ce2443 feat: introduce timeline
Closes #1489 #1490 #1491
2021-01-04 15:16:37 -05:00
Jonathan Rainville 825097f007 feat: add channel switcher when hitting CTRL+K 2020-12-30 15:01:51 -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
Richard Ramos ae30d04010 refactor: ProfileView 2020-12-08 17:01:22 -05:00
Iuri Matias 3662a938c9 change message limit count to 99+ 2020-12-02 14:29:39 -05:00
Richard Ramos 77cf450d20 fix: +99 2020-12-02 14:29:39 -05:00
Richard Ramos 91f5aae9e7 feat: show sign phrase modal in wallet 2020-12-01 13:30:07 -05:00
Richard Ramos 8890805a14 fix: scroll to bottom when switching back from any module to chat 2020-11-26 11:43:45 -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
Jonathan Rainville 53b0c74fd2 fix: fix tab bar buttons still having a margin when invisible 2020-11-05 10:55:27 -05:00
Pascal Precht c273ee9bed
fix: fix anchors for badge icon in profile button 2020-10-28 11:15:39 +01:00
Richard Ramos 5461d6f93c feat: remove seed phrase 2020-10-27 19:32:54 -04:00
Pascal Precht 885d93ddb1 feat: introduce StatusIconTabButton component 2020-10-27 15:26:00 -04:00
Jonathan Rainville af2af0700c feat: add basic browser settings and go to them on browser button click 2020-10-21 12:06:50 -04:00
Jonathan Rainville b5859fffa8 feat: open sendModal when click the send button in wallet popup 2020-10-20 14:42:36 -04:00
Richard Ramos cf3121f688 fix: load browser only when the browser tab is clicked 2020-10-20 14:42:36 -04:00
Jonathan Rainville f711d0a899 feat: add tabs at the top of the url bar 2020-10-20 14:42:36 -04:00
Michael Bradley, Jr e985e99f36 feat: reintroduce the dapp browser 2020-10-20 14:42:36 -04:00
Pascal Precht bc7b825f55 uiux(Chat): ensure chat input gets focus when changing views and channels
Fixes #804
2020-09-29 13:48:13 -04:00
Jonathan Rainville 99d5a46073 fix: fix binding loop in message count 2020-09-23 16:40:52 -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
Jonathan Rainville 797da0a962 feat: add ToastMessage when transaction becomes pending 2020-09-14 14:48:26 -04:00
Jonathan Rainville 64c2ff099e feat: remember wallet enabled in QT setting 2020-09-11 16:55:36 -04:00
Pascal Precht 23e1307659 WIP SAVEPOINT 2020-08-25 11:36:46 -04:00
Michael Bradley, Jr c08767c74b build: remove dapp browser 2020-08-17 14:01:26 -04:00
Iuri Matias 862dbcba04 display unread messages counter always 2020-07-23 15:55:26 -04:00
Richard Ramos c4eb92b5e8 fix: change size depending of content 2020-07-23 15:55:26 -04:00
Richard Ramos 4b558c8c72 feat: show unread messages badge 2020-07-23 15:55:26 -04:00
Jonathan Rainville 92f5a9ca5c feat: add dark theme colors and new properties for it 2020-07-14 12:37:17 -04:00
Jonathan Rainville a529d729ea feat: change Theme to Style to enable changing Theme 2020-07-03 09:59:14 -04:00
Iuri Matias 6e9ce3b250 disable browser, wallet, node tabs by default; add warning checkbox to intro screen 2020-06-26 11:37:59 -04:00
Jonathan Rainville 9683b7a79e feat: enable saving app settings like the SplitView state 2020-06-25 11:02:35 -04:00
Richard Ramos 6d1d66c2eb fix: SVG images blurryness 2020-06-23 18:52:54 -04:00
Iuri Matias 0ad64cc5de update qml imports 2020-06-18 11:02:11 -04:00
Iuri Matias 1cacc8cf88 support enabling/disabling tabs in the advanced settings
support enabling/disabling tabs in the advanced settings

use qstr
2020-06-18 10:28:43 -04:00
Jonathan Rainville b8a5d25d8b chore: remove no longer necessary anchors on layouts
Not sure why, but these are no longer necessary
2020-05-27 14:56:33 -04:00
Iuri Matias 98ce32204d add icon for node tab 2020-05-20 07:56:39 -04:00
Michael Bradley, Jr d673915975 feat: layouts for the Profile screens
Work on this PR started before the build system was updated and at one point I
upgraded `nim_status_client.nimble` to use NimScript so the nimble command
would stop warning that the old format was being used. In team chat it was
discussed that since we're no longer using nimble for package management we
could simply delete `nim_status_client.nimble` to avoid confusion, which can be
done in another PR.

Introduce a BrowserLayout stub so the index will be calcualted correctly re:
the active tab.

Reorganize ChatLayout and NodeLayout into subdirs `Chat` and `Node`,
respectively.

Introduce ProfileLayout which uses a "LeftTab" approach similar to that of
WalletLayout. There remains quite a bit of styling work to be done in
ProfileLayout and its LeftTab. Also, it may be better to start over using a
SplitView like the ChatLayout, I'm not really sure.

It wasn't clear what should be the default view for the right-pane when Profile
is selected in the left-most TabBar. In this PR, it defaults to showing the
view corresponding to the ENS usernames button.

In the archived Figma for the desktop design, it seemed a picture could be set,
e.g. there is a headshot of a woman used in the Profile screen. To that end I
explored how to take a square image and clip/mask it so it appears round and I
included a larger placeholder image for that purpose. In the new design, and
with respect to mobile, it may not be possible to set a profile picture so the
code that rounds the image can maybe be dropped.
2020-05-19 20:02:21 -04:00
Iuri Matias bc6d1f1623 move views & logic into their respective folders; add initial tab for node management 2020-05-15 18:43:32 -04:00
Jonathan Rainville 067b6f6fb0 feat: add basic WalletLayout 2020-05-13 19:05:20 -04:00
Jonathan Rainville ae7ee0b363 chore: split ChatLayout into a seprate file
Preliminary work for the wallet. This way, AppLayout isn,t goign to be huge
2020-05-13 13:39:23 -04:00
Jonathan Rainville defd6f262e fix: cleanup some elements and fix the right side gap 2020-05-13 13:33:03 -04:00