* 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
* 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
* 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
* 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
* chore: switch terms active/inactive to unlocked/locked
* fix(ui): show rescanning alert on CreateWallet page
* feat(ui): show rescanning alert on Wallets page
* 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
* 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
* 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
* 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
* 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
* 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
* 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
* 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>
* 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>