diff --git a/.vscode/settings.json b/.vscode/settings.json index 022fb962..289f323a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,7 @@ "editor.guides.bracketPairs": true, "editor.formatOnSave": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.codeActionsOnSave": ["source.fixAll.eslint"], + // "editor.codeActionsOnSave": ["source.fixAll.eslint"], "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"], "files.exclude": { "**/.git": true, diff --git a/src/components/HistoryTable.vue b/src/components/HistoryTable.vue index c15397fb..3df9a6fd 100644 --- a/src/components/HistoryTable.vue +++ b/src/components/HistoryTable.vue @@ -71,6 +71,18 @@ +
+ +
No history yet
@@ -107,8 +119,14 @@ export default defineComponent({ return { currentPage: 1, pageSize: 5, + filterPending: false, }; }, + watch: { + filterPending: function () { + this.currentPage = 1; + }, + }, computed: { ...mapState(useTokensStore, ["historyTokens"]), ...mapWritableState(useReceiveTokensStore, [ @@ -121,6 +139,13 @@ export default defineComponent({ paginatedTokens() { const start = (this.currentPage - 1) * this.pageSize; const end = start + this.pageSize; + if (this.filterPending) { + return this.historyTokens + .filter((token) => token.status === "pending") + .slice() + .reverse() + .slice(start, end); + } return this.historyTokens.slice().reverse().slice(start, end); }, }, diff --git a/src/components/InvoiceDetailDialog.vue b/src/components/InvoiceDetailDialog.vue index 953ea8b1..21121f71 100644 --- a/src/components/InvoiceDetailDialog.vue +++ b/src/components/InvoiceDetailDialog.vue @@ -4,6 +4,7 @@ position="top" backdrop-filter="blur(2px) brightness(60%)" no-backdrop-dismiss + full-height > diff --git a/src/components/InvoicesTable.vue b/src/components/InvoicesTable.vue index 11368f99..36014088 100644 --- a/src/components/InvoicesTable.vue +++ b/src/components/InvoicesTable.vue @@ -54,7 +54,18 @@ - +
+ +
No invoices yet invoice.status === "pending") + .slice(start, end); + } return this.invoiceHistory.slice().reverse().slice(start, end); }, }, diff --git a/src/components/MintSettings.vue b/src/components/MintSettings.vue index 14b18c50..6b0fab3a 100644 --- a/src/components/MintSettings.vue +++ b/src/components/MintSettings.vue @@ -593,7 +593,7 @@ export default defineComponent({ methods: { ...mapActions(useNostrStore, [ "init", - "connect", + "initNdkReadOnly", "getUserPubkey", "fetchEventsFromUser", "fetchMints", @@ -761,7 +761,7 @@ export default defineComponent({ } }, initNdk: async function () { - await this.connect(); + await this.initNdkReadOnly(); console.log(await this.getUserPubkey()); // console.log("### fetch events"); // console.log(await this.fetchEventsFromUser()); @@ -770,7 +770,7 @@ export default defineComponent({ }, fetchMintsFromNdk: async function () { this.discoveringMints = true; - await this.connect(); + await this.initNdkReadOnly(); console.log("### fetch mints"); let maxTries = 5; let tries = 0; diff --git a/src/components/ReceiveTokenDialog.vue b/src/components/ReceiveTokenDialog.vue index 8c2a0ad7..305278d4 100644 --- a/src/components/ReceiveTokenDialog.vue +++ b/src/components/ReceiveTokenDialog.vue @@ -61,10 +61,7 @@ rounded flat class="q-mr-sm" - v-if=" - decodeToken(receiveData.tokensBase64) && - !tokenAlreadyInHistory(receiveData.tokensBase64) - " + v-if="decodeToken(receiveData.tokensBase64)" >Later Add to history to receive later @@ -232,10 +229,12 @@ export default defineComponent({ ); }, addPendingTokenToHistory: function (token) { - const tokensStore = useTokensStore(); if (this.tokenAlreadyInHistory(token)) { + this.notifySuccess("Ecash already in history"); + this.showReceiveTokens = false; return; } + const tokensStore = useTokensStore(); const decodedToken = this.decodeToken(token); // get amount from decodedToken.token.proofs[..].amount const amount = this.getProofs(decodedToken).reduce( diff --git a/src/components/SendTokenDialog.vue b/src/components/SendTokenDialog.vue index 3d61403b..99c111c8 100644 --- a/src/components/SendTokenDialog.vue +++ b/src/components/SendTokenDialog.vue @@ -4,6 +4,7 @@ position="top" backdrop-filter="blur(2px) brightness(60%)" no-backdrop-dismiss + full-height > diff --git a/src/components/SettingsView.vue b/src/components/SettingsView.vue index 38bc69b2..b98b326c 100644 --- a/src/components/SettingsView.vue +++ b/src/components/SettingsView.vue @@ -238,9 +238,210 @@
- +
+ + + Lightning address + Your Lightning address is generated from your nostr + keys. + + + + + +
+ +
+
+
+ + + +
+
+ + + Claim automatically + Receive incoming payments automatically when the wallet is + started. + + +
+
+
+
+ + +
+ + + + Your nostr keys + Link your wallet to a nostr account to generate your + Lightning address. + + + + + + + + + Wallet seed phrase + Generate nostr key pair from seed + + + + + + + + + + Nsec Bunker + Use a NIP-46 bunker + + + Delete connection + + + + + + + + + Use your nsec + Enter your nostr private key + + + + Delete nsec + + + + + + + + + Signing extension + Use a NIP-07 signing extension + + No NIP-07 signing extension found + + + + +
+ + + Link wallet @@ -311,7 +512,7 @@ Show QR code - +