Commit Graph

84 Commits

Author SHA1 Message Date
Jonathan Rainville de5d542b8e fix: change text strings to qsTr
Co-authored-by: RichΛrd <info@richardramos.me>
2020-06-16 11:57:11 -04:00
Jonathan Rainville 34810e0587 chore: remove AccountSelection component that is no longer needed 2020-06-16 11:57:11 -04:00
Jonathan Rainville 026d1d1c4d feat: design onboarding 2020-06-16 11:57:11 -04:00
Jonathan Rainville 03305c548f fix: make gen key modal not flickable 2020-06-16 11:54:52 -04:00
Jonathan Rainville 7873a0ff58 feat: design gen new key modal 2020-06-15 08:07:15 -04:00
Jonathan Rainville 846dc646e1 feat: add design to enter a seed key 2020-06-13 09:51:38 -04:00
Jonathan Rainville 67c7e9b0ca feat: implement design on the login screen 2020-06-12 08:11:14 -04:00
emizzle 4ec593baed feat: Add logout functionality
Move the onboarding/login state machine to the top level in main.qml, so that logout events can trigger new states.

Add Loader to statemachine so that each component is lazy-loaded. Initial tests saved 50MB of memory on startup.

Currently, logging out, then logging back in to the same or different account results in a doubling-up of chats/messages/wallet accounts. These need to be reset, however I need help doing that and it would delayed and blown out this PR further. This reset has been done for Onboarding and Login, but needs to be done for chats, wallet, mailservers, etc.
2020-06-11 09:28:25 -04:00
Jonathan Rainville bf5f0b6dda feat: add basic generate account popup 2020-06-04 16:31:17 -04:00
Iuri Matias 0ea8fc08de refactor to use passed functions as props
Update ui/onboarding/Login/AccountList.qml

Co-authored-by: RichΛrd <info@richardramos.me>

context

refactor to use passed functions as props
2020-06-04 10:39:28 -04:00
Iuri Matias 64b565c6c3 extract Login wizard components 2020-06-04 10:39:28 -04:00
Iuri Matias 1ba579e94b extract the slide into a component 2020-06-04 10:39:28 -04:00
emizzle ac37f0fdbb fix: small onboarding/login fixes and feats
- fix: Change displayed login key to whisper public key (starts with 0x04)
- fix: remove key displayed on login accounts as this value is not passed to use from status-go's openAccounts
- feat: add selected account view when entering password for login and generating an account (same UI as importing a key)
2020-06-03 08:36:37 -04:00
emizzle 691717990d feat: Add import account functionality
Allow user to import an existing mnemonic.

TODO: add mnemonic validation with the `validateMnemonic` status-go function.
2020-06-02 17:09:38 -04:00
Jonathan Rainville 9fc93b8db2 fix: genKey binding and focus 2020-06-01 12:28:47 -04:00
Jonathan Rainville 545bb751c1 feat: add Input to Login screen and enable otherProps for the Input 2020-06-01 12:28:47 -04:00
Jonathan Rainville c29160fff7 chore: use Buttons for all components and improve Login 2020-06-01 12:28:47 -04:00
emizzle a2e255e72c feat: Add generate account button to login screen 2020-05-28 07:51:04 -04:00
emizzle 0f59529c57 feat: add login functionality
Add login functionality. If node accounts exist in status-go (keystores in ./data dir), then show the Login screen. Otherwise, show the Onboarding screen (generate keys screen).

Update nim-stew to latest version.

Change references to Address to the common type Account to prevent repeating of types.

Distinguish between unknown and unhandled signals.

Pass signals through to subscribers regardless if the signal type is known (in case the SignalSubscriber handles it with string comparison or other).

Update serialization as much as possible

Latest nim-stew updates allow type inheritance during de/serialization
2020-05-28 07:51:04 -04:00
Jonathan Rainville d8511490ca chore: fix anchor warnings for CHatColumn and KenKey 2020-05-27 14:56:33 -04:00
emizzle 66fc2b96d0 fix: Inability to select generated account
Selecting a generated account other than the first one in the list would always use the first generated account.

Uncomment commented-out code that updates the selected index in the view.
2020-05-26 13:55:23 -04:00
emizzle e1d1880aca fix: change onboarding account to whisper key
Previously, the displayed key for generated accounts was displaying the public key of the account, and not the whisper account. This has been fixed.

Futher work has gone in to strongly-typing a lot of the responses from status-go and removed a lot of the manual string parsing.

Simplified types and type-conversions by using the `nim-serialization` library.
2020-05-25 11:31:18 -04:00
Jonathan Rainville e371d2fe4b chore: fix a couple of warnings 2020-05-22 17:09:40 -04:00
emizzle a1109ca52b feat: Pass login account data in account event
The "accountsReady" event now passes the account information for the account that was logged in, which helps pass the correct account info to Profile and is available for other modules that may need it.

This will become particularly useful once the login functionality is implemented.
2020-05-22 16:11:12 -04:00
Iuri Matias 50fc70adfb address code review 2020-05-21 19:33:14 -04:00
Iuri Matias c1f6a0d06d address code review 2020-05-21 19:33:14 -04:00
Iuri Matias 6c03369ca2 refactor/extract saveAccountAndLogin method 2020-05-21 19:33:14 -04:00
Iuri Matias d434af40e1 move generate addresses action to qml state machine enter state event 2020-05-21 19:33:14 -04:00
Iuri Matias ce236fbc82 cleanup 2020-05-21 19:33:14 -04:00
Iuri Matias 81a478d797 remove unsused method 2020-05-21 19:33:14 -04:00
Iuri Matias 7cd9ceac28 refactor: move onboarding logic out of the view 2020-05-21 19:33:14 -04:00
Iuri Matias 2cf1541115 move storeAccount logic out of the view 2020-05-21 19:33:14 -04:00
emizzle dafd11fbc0 feat: onboarding generate new account
Generates 5 random accounts with identicons, allows user to enter password, then stores the account and logs in to the statusgo node.

Add EventEmitter that notifies nim_status_client.nim once node has started and is logged in (likely needs some refactoring to include the eventemitter in the base controller class).

Add QML StateMachine for the onboarding view.

Add nimcrytpo, uuids, eventemitter, isaac dependencies via submodules.

Add button to Intro view to randomly gen account.
2020-05-21 19:33:14 -04:00
emizzle 4769f578a6 feat: Onboarding carousel
Onboarding carousel completed

Redo folder restructuring

NOTES:
1. nim_status_client binary is output to `./bin/nim_status_client`, so you'll need to update your workflow to run this file. README has been updated to reflect this. Also, if you're running VSCode, instructions for code reload were added.
2. All `ui` files now live in `ui/`
3. All lib files (ie `libstatus`) now live in `lib/`
4. Removed the Qt Creater user project file as this is unique to each user
5. Moved the project file to `ui/`, so just open up the `ui` folder in Qt creator and it should locate the project file
6. `-d:release` removed from compilation as it wasn't needed
7. Broke up main.qml in to the main app and onboarding components, however this should be broken down further into more reusable components
8. Click "Get started" to show chat

Format some files using nimpretty
2020-05-12 18:52:51 -04:00