Commit graph

531 commits

Author SHA1 Message Date
Thebora Kompanioni
06bf4dbb20
chore: small ui changes suggested by @editwentyone (#709)
* chore(main): change wallet distribution popover placement

* chore(receive): move new address button below qrcode

* chore(footer): hide app info on small screens

* chore: use standard modal for app info

* ui(menu): increase font size on mobile in side menu

* ui(receive): fix amount input field addon border
2023-12-14 11:39:42 +01:00
Thebora Kompanioni
643db8570b
chore(send): align unit in collaborators fee breakdown (#708)
* fix(send): fix destination jar selector icon position

* ui(send): display collaborator fees in user preferred unit
2023-12-14 11:38:16 +01:00
Thebora Kompanioni
d56693610a
build(deps): upgrade to react 18 (#700)
* build(deps): update jest-watch-typeahead from v0.6.5 to v2.2.2

* build(deps): update jest-websocket-mock to v2.5.0

* build(deps): update to react 18

* fix(test): fix other tests after update to react 18

* fix(ts): fix typescript errors after update to react 18

* fix: use createRoot in index.tsx

* build(deps): update react-router-dom to v6.20.0

* refactor: WebsocketContext from jsx to tsx

* refactor: ShareButton from jsx to tsx

* refactor: i18n files from js to ts

* chore(build): disallow javascript

* chore: adhere to new i18next release rules

* ui: add success page to wallet import flow

* chore: enable react-router v7 futures

* chore(build): prevent build warning by installing babel plugin

* test(websocket): enable websocket indicator test in App.test.tsx

* ui(import): add link to main wallet view to import success page

* build(deps): update react-bootstrap to v2.9.1
2023-12-06 11:38:51 +01:00
Overload3910
e48d1b332d
dev(regtest): update btc-rpc-explorer to v3.4.0 (#704) 2023-12-06 11:32:42 +01:00
Thebora Kompanioni
a246ad308e
refactor: externalize send form components (#695)
* dev: switch to kristapsks backend branch

* dev: add directSendTxFee to feature toggles

* dev: add tx_fee to DirectSendRequest

* refactor: reusable TxFeeInputField component

* refactor: move validate method of tx fee input field

* refactor(wip): split send form into reusable components

* refactor: pass loadNewWalletAddress to SendFrom

* refactor: SourceJarSelector component

* fix(ui): do not display number input as textfield on Send page

* fix(style): input groups with validation in SendForm

* build(deps): update formik from v2.2.9 to v2.4.5

* ui(send): show form feedback for source jar index value
2023-12-01 12:34:28 +01:00
dependabot[bot]
101ab4acf3
build(deps-dev): bump @adobe/css-tools from 4.3.1 to 4.3.2 (#702)
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-01 12:22:54 +01:00
Thebora Kompanioni
3274a22ae0
dev: ability to reset fee values in dev mode (#698)
* dev: ability to reset fee values in dev mode

* dev: add dev badge to test toggle on Jam page
2023-11-30 13:42:35 +01:00
Thebora Kompanioni
192d6321dd
ui(Jar): hide currency symbol of frozen balance (#697)
* dev(Balance): ability to hide symbol programmatically
* ui(Jar): hide currency symbol of frozen balance
* ui(Jar): same font size for available and frozen balance
2023-11-30 13:42:07 +01:00
dependabot[bot]
776101386d
build(deps-dev): bump @adobe/css-tools from 4.0.1 to 4.3.1 (#701)
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.0.1 to 4.3.1.
- [Changelog](https://github.com/adobe/css-tools/blob/main/History.md)
- [Commits](https://github.com/adobe/css-tools/commits)

---
updated-dependencies:
- dependency-name: "@adobe/css-tools"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-28 11:20:43 +01:00
Thebora Kompanioni
ef2b829df0
build(deps): update dependencies (#699)
* build(deps): update jest-watch-typeahead from v0.6.5 to v2.2.2

* build(deps): update jest-websocket-mock to v2.5.0
2023-11-28 11:08:11 +01:00
Thebora Kompanioni
224cd0e680
ui: improve phrasing and display rescanning alert (#693)
* chore: switch terms active/inactive to unlocked/locked

* fix(ui): show rescanning alert on CreateWallet page

* feat(ui): show rescanning alert on Wallets page
2023-11-20 19:48:23 +01:00
Thebora Kompanioni
821b227fa7
ui: improve balance spacing, coloring and grouping (#691)
* chore: continue loop on errors in setIntervalDebounced

* ui(balance): improve displaying balance value in BTC

* chore: use cursor-pointer style class where applicable

* ui(style): use only css to style bitcoin amount

* refactor: add frozen flag to balance component

* ui(balance): align colors with copy

* ui(balance): deemphasize symbol on zero balance

* test(balance): use testid to get balance element
2023-11-13 11:10:20 +01:00
Thebora Kompanioni
df8180432b
fix: use orderbook.json instead of parsing html table (#687)
* refactor: use orderbook.json api instead of parsing html

* refactor(orderbook): improve displaying relative fee values

* ui(orderbook): monospace font for bond value

* ui(orderbook): normalized bond value

* ui(orderbook): hide column miner fee contribution
2023-11-02 12:50:09 +01:00
Thebora Kompanioni
7375116516
chore: validate wallet name (#684) 2023-11-02 12:49:41 +01:00
Thebora Kompanioni
b6a568ef3f
dev: always show logs button in dev mode (#681) 2023-11-02 12:49:21 +01:00
Thebora Kompanioni
8e4023949e
chore: do not display xpubs (#688)
..as those derive public keys from an unexpected derivation depth

* ui(jar): hide empty internal change accounts
2023-11-02 12:49:03 +01:00
Thebora Kompanioni
26bb17badc
chore(dev): dev setup info page (#686) 2023-10-31 10:09:47 +01:00
Thebora Kompanioni
adfac29dd4
chore: remove create wallet button from settings page (#680) 2023-10-18 21:28:35 +02:00
dependabot[bot]
d24bd49846
build(deps-dev): bump @babel/traverse from 7.20.1 to 7.23.2 (#679) 2023-10-18 11:44:50 +02:00
Thebora Kompanioni
94be4c2cbd
build(deps): update bootstrap from v5.2.3 to v5.3.2 (#645) 2023-10-18 11:41:26 +02:00
Thebora Kompanioni
2bed51eb71
chore(footer): improve label and colors of websocket indicator (#677) 2023-10-14 08:59:57 +02:00
Thebora Kompanioni
5900a8c620
fix: show warning on missing fee config values (#674)
* fix(send): show warning on missing fee config values

* fix(fee): allow missing fee config values to be updated

* feat(fee): open fee config modal from fee warning alert
2023-10-12 17:40:51 +02:00
Thebora Kompanioni
fcf23a9f46
chore: do not preselect jar on send page (#676) 2023-10-12 17:37:00 +02:00
Thebora Kompanioni
c1d6bdfbc2
chore: debounce polling of session info (#675) 2023-10-12 17:25:01 +02:00
Thebora Kompanioni
31f54c8cb8
fix(fee-randomization): fix fee range in PaymentConfirmModal (#655) 2023-10-12 16:25:30 +02:00
Thebora Kompanioni
687c0311de
chore(ui): scroll to page top after successful payment (#672) 2023-10-10 09:14:57 +02:00
Thebora Kompanioni
11ee5b4fa3
refactor: Consistent use of walletName vs walletFileName (#671)
* refactor: consistent use of displayName vs walletFileName

* refactor: Settings component from jsx to tsx

* refactor: Wallets component from jsx to tsx

* refactor: Onboarding component from jsx to tsx

* refactor: ScheduleProgress component from jsx to tsx

* chore(i18n): consistent use of global.errors.reason_unknown

* refactor: CreateWallet component from jsx to tsx

* refactor: BitcoinQR from jsx to tsx

* refactor: Receive component from jsx to tsx

* refactor: Earn component from jsx to tsx

* dev(regtest): switch to python:3.11-slim-bookworm as base image

see https://github.com/JoinMarket-Org/joinmarket-clientserver/pull/1484#issuecomment-1751814593

* chore(dev): do not log error when fetch was aborted
2023-10-08 15:44:31 +02:00
Thebora Kompanioni
4c76d6ae23
feat: new authentication mechanism (access/refresh token) (#665)
* dev(auth): add method postToken to JmWalletApi

* refactor: remove type ServiceInfoUpdate

* dev(auth): add Single- and RefreshTokenContext types

* Revert "config: use joinmarket v0.9.10 (#664)"

Commit was temporarily till the new auth mechanism can be handled.
This reverts commit c31ba67bfb.

* dev(auth): save auth context to session

* dev(auth): refresh token periodically

* dev(auth): maintain CurrentWallet reference when renewing auth token

* refactor: server.version must be present

* dev(auth): lower token refresh interval in dev mode

* dev(auth): add distinct method to parse auth props
2023-10-08 15:08:52 +02:00
Thebora Kompanioni
69e61e06c1
feat: display ui/backend version (#668)
* refactor: Footer from jsx to tsx

* feat: display JM and Jam version in info modal
2023-09-28 12:02:41 +02:00
Gigi
28fed7ffd3
chore(release): v0.1.6 (#666) 2023-09-22 17:27:23 -04:00
Gigi
c31ba67bfb
config: use joinmarket v0.9.10 (#664) 2023-09-22 02:42:16 +02:00
Overload3910
8b54f28644
feat(i18n): update german translation (de) (#659) 2023-09-19 22:50:51 +02:00
Overload3910
c40938a2fa
feat(i18n): update to Chinese translations (#660) 2023-09-19 22:50:29 +02:00
openoms
a0fa434eab
fix: typo on orderbook page (#661) 2023-09-17 11:58:15 +02:00
Thebora Kompanioni
313c077f16
chore(import): display warning on large gaplimit values (#658)
* fix(import): apply upper limit to gaplimit value on import

* fix(import): apply upper limit to blockheight value on import

* ui(import): display warning on high gaplimit values on import

* refactor(ui): add variant to Accordion component
2023-09-12 11:37:31 +02:00
Thebora Kompanioni
2ebb1b5b6a
chore: apply new formatting rules after prettier upgrade (#657)
* build(deps): update prettier from v2.8.7 to v3.0.3

* chore: apply new formatting rules after prettier upgrade
2023-09-10 15:14:57 +02:00
Thebora Kompanioni
6b45718759
feat: backend version based feature toggles (#647)
* feat(api): add getinfo request to JmWalletApi

* chore: add server information to ServiceInfoContext

* feat(features): feature toggles based on backend version

* ui: hide import wallet button on unsupported backend version

* ui: hide rescan chain button on unsupported backend version

* fix: handle nullable serviceInfo and fix tests

* test: verify import wallet is not displayed
2023-09-10 15:04:46 +02:00
Thebora Kompanioni
a559e1e92c
fix(ui): consistent button styles (#656)
* fix(ui): consistent button styles in WalletCreationForm

* fix(ui): consistent button styles in WalletCreationConfirmation

* fix(ui): consistent button styles in Create/Import Wallet

* fix(ui): consistent button styles on Wallet List

* fix(ui): consistent button text when submitting on create wallet

* fix(ui): consistent button styles on Send page

* fix(ui): consistent button styles on Earn page

* fix(ui): consistent button stlyes on MainWalletView page

* fix(ui): consistent button styles on Receive page

* refactor(CopyButton): remove sprites

* fix(ui): consistent button styles on Jam page

* fix(ui): consistent button styles in CreateFidelityBond flow

* fix(ui): border color of send/receive button on MainWalletView

* dev(feat): add fast theme toggle to navbar

* fix(ui): align onboarding flow
2023-09-10 14:38:48 +02:00
Thebora Kompanioni
028f32166a
feat: import wallet (#621)
* chore(regtest): do not build tor locally in regtest env

* feat(import): add rescanning param to session request

* feat(api): add rescanblockchain request to JmWalletApi

* feat: add import wallet button to wallets page

* refactor: externalize component PreventLeavingPageByMistake

* refactor: externalize component WalletCreationForm

* wip: use WalletCreationForm in ImportWallet

* refactor: externalize SeedWordInput and rename to MnemonicWordInput

* feat(api): add wallet recover request to JmWalletApi

* build(deps): bump caniuse-lite to v1.0.30001511

* wip(import): start wallet after successful import

* refactor: externalize component WalletCreationConfirmation

* wip(import): use WalletCreationConfirmation view in component WalletImport

* dev(regtest): add funds to dummy wallet during initialization of local setup

* wip(import): update gaplimit before rescanning chain

* wip(import): prevent import if rescan is in progress

* wip(import): ability to customize gaplimit and blockheight

* wip(import): show duration hint when importing wallet

* wip(import): hide sensitive info while importing wallet

* wip(import): reset gaplimit to original value after importing

* wip(import): add description for blockheight and gaplimit

* wip(import): add cancel button to WalletCreationForm

* refactor: externalize component MnemonicPhraseInput

* wip(import): show rescanning indicator on main wallet view

* wip(import): show rescanning indicator in navbar

* wip(import): disable sending when rescanning is in progress

* wip(import): disable navbar/earn/jam when rescanning is in progress

* Update src/i18n/locales/en/translation.json

Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>

* fix(import): disable viewing jars on main wallet if rescanning is active

* wip(import): prevent creating new address when rescanning

* fix(import): reload wallet info after rescanning finishes

* refactor: move auto reloading code from WalletContext to WalletInfoAutoReload

* refactor: remove unused method reloadDisplay

* wip(import): reload recursively till balance is found

* wip(import): expand import options by default

* ui: add 'dev' badge to buttons only visible in dev env

---------

Co-authored-by: openoms <43343391+openoms@users.noreply.github.com>
2023-09-08 13:26:59 +02:00
Thebora Kompanioni
4d0479ee78
ui(fb): display warning if all funds are used for fb (#649) 2023-08-28 17:29:08 +02:00
Thebora Kompanioni
77c3ec91ed
ui(send): add warn sign to selected jar on precondition violations (#648)
* ui(send): move precondition violation alert below jar selector

* ui(send): display warn sign in selectable jar on precondition violations

* ui(send): improve sending-in-progress screen

* ui(send): add checkmark to payment success alert
2023-08-28 14:07:16 +02:00
Nicola Elia
7a6b920fd2
feat(Send): Fee breakdown table (#606)
* Add `AccordionInfo` component

* Add fee breakdown UI

* Wrap `loadFeeConfigValues` in hook

I'm not sure about the correctness of using useEffect inside the useFeeConfigValues hook,
in particular regarding the effectiveness of the cleanup function (including `abortCtrl.abort()`)

* Wrap mining fee text function in hook

* Wrap estimated max collaborator fee in hook

* Get real fee values

* Fix TS error "TFunction is not generic"

* Improve clarity

* Fix popover header visibility in dark mode

* Use passive voice in "cannot estimate mining fee" text

Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>

* Fix past usage in "cannot estimate mining fee" text

* Fix popover dark mode colors

* Align UI to the new proposal from editwentyone

* ui: de-emphasize non-effective fee card content

* chore: fix browser warning for fee breakdown subtitle

validateDOMNesting(...): <a> cannot appear as a descendant of <a>.

* chore(wording): Fee Estimation -> Maximum collaborator fee limit

* chore: use css class text-small for fee breakdown labels

* chore: use useMemo in FeeBreakdown component

* feat(FeeBreakdown): open fee modal on click

* ui(FeeBreakdown): add less-or-equal sign

* ui(FeeBreakdown): show max collaborator fee value in title

* ui(FeeBreakdown): open cj fee section by default

* ui(FeeSettings): switch position of mining and collaborator fees

* ui(FeeBreakdown): now works with sweep transactions

* ui(FeeBreakdown): market maker fees -> collaborator fees

* fix(actions): temporarily print linter debug messages

* build(deps): update to prettier v2.8.7

* ui(FeeBreakdown): emphasize collaborator fee note

* fix(FeeBreakdown): improve handling of missing config values

* chore(FeeBreakdown): Remove unused `AccordionInfo`

* revert: temporarily print linter debug messages

---------

Co-authored-by: Thebora Kompanioni <theborakompanioni@users.noreply.github.com>
Co-authored-by: theborakompanioni <theborakompanioni+github@gmail.com>
2023-08-28 11:03:14 +00:00
dependabot[bot]
c64a39371f
build(deps-dev): bump word-wrap from 1.2.3 to 1.2.5 (#644)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-18 17:49:28 +02:00
dependabot[bot]
c300a8b3e7
build(deps-dev): bump semver from 5.7.1 to 5.7.2 (#643)
Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-18 17:49:17 +02:00
dependabot[bot]
408079e543
build(deps-dev): bump tough-cookie from 4.1.2 to 4.1.3 (#642)
Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/salesforce/tough-cookie/releases)
- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)
- [Commits](https://github.com/salesforce/tough-cookie/compare/v4.1.2...v4.1.3)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-18 17:49:02 +02:00
dependabot[bot]
1afa804cc2
build(deps): bump webpack from 5.74.0 to 5.76.1 (#612)
Bumps [webpack](https://github.com/webpack/webpack) from 5.74.0 to 5.76.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.74.0...v5.76.1)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-18 14:58:27 +02:00
Thebora Kompanioni
b029c92382
feat(balance): display frozen balance on jars (#635) 2023-08-17 14:56:51 +02:00
Overload3910
da39aa3516
dev(regtest): expose port of bitcoind in development setup (#630) 2023-07-06 21:55:12 +02:00
Overload3910
57f03713d6
i18n: add german translation de 🇩🇪 (#623)
* i18n: add german translation

---------

Co-authored-by: TG <prv@mbp.local>
2023-07-05 15:14:03 +02:00
Thebora Kompanioni
53a16d954d
dev(regtest): upgrade bitcoin core from v23 to v25 (#629) 2023-07-05 15:13:10 +02:00