diff --git a/src/components/MultiSelectActions.tsx b/src/components/MultiSelectActions.tsx
index 424d2372..7ca69599 100644
--- a/src/components/MultiSelectActions.tsx
+++ b/src/components/MultiSelectActions.tsx
@@ -1,10 +1,16 @@
import { commands, TransactionResponse } from '@/bindings';
import { useErrors } from '@/hooks/useErrors';
import { toMojos } from '@/lib/utils';
-import { useWalletState } from '@/state';
+import { useOfferState, useWalletState } from '@/state';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
-import { ChevronDown, Flame, SendIcon, UserRoundPlus } from 'lucide-react';
+import {
+ ChevronDown,
+ Flame,
+ HandCoins,
+ SendIcon,
+ UserRoundPlus,
+} from 'lucide-react';
import { useState } from 'react';
import { AssignNftDialog } from './AssignNftDialog';
import ConfirmationDialog from './ConfirmationDialog';
@@ -16,6 +22,7 @@ import {
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
+ DropdownMenuSeparator,
DropdownMenuTrigger,
} from './ui/dropdown-menu';
@@ -29,7 +36,10 @@ export function MultiSelectActions({
onConfirm,
}: MultiSelectActionsProps) {
const walletState = useWalletState();
+ const offerState = useOfferState();
+
const { addError } = useErrors();
+
const selectedCount = selected.length;
const [transferOpen, setTransferOpen] = useState(false);
@@ -126,6 +136,39 @@ export function MultiSelectActions({
Burn
+
+
+
+ {
+ e.stopPropagation();
+
+ const newNfts = [...offerState.offered.nfts];
+
+ for (const item of selected) {
+ if (newNfts.includes(item)) {
+ continue;
+ }
+
+ newNfts.push(item);
+ }
+
+ useOfferState.setState({
+ offered: {
+ ...offerState.offered,
+ nfts: newNfts,
+ },
+ });
+
+ onConfirm();
+ }}
+ >
+
+
+ Add to Offer
+
+
diff --git a/src/components/NftCard.tsx b/src/components/NftCard.tsx
index 33bc14c3..5ce35801 100644
--- a/src/components/NftCard.tsx
+++ b/src/components/NftCard.tsx
@@ -9,7 +9,7 @@ import { useErrors } from '@/hooks/useErrors';
import { amount } from '@/lib/formTypes';
import { nftUri } from '@/lib/nftUri';
import { toMojos } from '@/lib/utils';
-import { useWalletState } from '@/state';
+import { useOfferState, useWalletState } from '@/state';
import { zodResolver } from '@hookform/resolvers/zod';
import { t } from '@lingui/core/macro';
import { Trans } from '@lingui/react/macro';
@@ -20,6 +20,7 @@ import {
EyeIcon,
EyeOff,
Flame,
+ HandCoins,
LinkIcon,
MoreVertical,
SendIcon,
@@ -85,6 +86,7 @@ export function NftCardList({ children }: PropsWithChildren) {
export function NftCard({ nft, updateNfts, selectionState }: NftProps) {
const walletState = useWalletState();
+ const offerState = useOfferState();
const navigate = useNavigate();
const { addError } = useErrors();
@@ -287,6 +289,35 @@ export function NftCard({ nft, updateNfts, selectionState }: NftProps) {
+ {
+ e.stopPropagation();
+
+ const newNfts = [...offerState.offered.nfts];
+
+ newNfts.push(nft.launcher_id);
+
+ useOfferState.setState({
+ offered: {
+ ...offerState.offered,
+ nfts: newNfts,
+ },
+ });
+ }}
+ disabled={
+ !nft.created_height ||
+ offerState.offered.nfts.findIndex(
+ (nftId) => nftId === nft.launcher_id,
+ ) !== -1
+ }
+ >
+
+
+ Add to Offer
+
+
+
{
diff --git a/src/locales/de-DE/messages.po b/src/locales/de-DE/messages.po
index 73a9cda6..3c115e5a 100644
--- a/src/locales/de-DE/messages.po
+++ b/src/locales/de-DE/messages.po
@@ -38,7 +38,7 @@ msgstr "{peersToDeleteCount, plural, one {Dadurch wird der Peer aus Ihrer Verbin
msgid "{peersToDeleteCount, plural, one {Will temporarily prevent the peer from being connected to.} other {Will temporarily prevent the peers from being connected to.}}"
msgstr "{peersToDeleteCount, plural, one {Verhindert vorübergehend die Verbindung zum Peer.} other {Verhindert vorübergehend die Verbindung zu den ausgewählten Peers.}}"
-#: src/components/MultiSelectActions.tsx:80
+#: src/components/MultiSelectActions.tsx:90
msgid "{selectedCount} selected"
msgstr "{selectedCount} ausgewählt"
@@ -55,7 +55,7 @@ msgid "{transactionSpentCount} inputs, {transactionCreatedCount} outputs"
msgstr ""
#: src/pages/PeerList.tsx:205
-#: src/components/MultiSelectActions.tsx:85
+#: src/components/MultiSelectActions.tsx:95
#: src/components/AddressList.tsx:68
msgid "Actions"
msgstr "Aktionen"
@@ -64,7 +64,7 @@ msgstr "Aktionen"
msgid "Add new peer"
msgstr "Neuen Peer hinzufügen"
-#: src/components/NftCard.tsx:347
+#: src/components/NftCard.tsx:378
msgid "Add NFT URL"
msgstr "NFT-URL hinzufügen"
@@ -80,8 +80,13 @@ msgstr "Fügen Sie die von Ihnen angebotenen Assets hinzu."
msgid "Add the assets you are requesting."
msgstr "Fügen Sie die angeforderten Assets hinzu."
-#: src/components/NftCard.tsx:270
-#: src/components/NftCard.tsx:438
+#: src/components/NftCard.tsx:317
+#: src/components/MultiSelectActions.tsx:169
+msgid "Add to Offer"
+msgstr ""
+
+#: src/components/NftCard.tsx:272
+#: src/components/NftCard.tsx:469
msgid "Add URL"
msgstr "URL hinzufügen"
@@ -152,9 +157,9 @@ msgstr "Asset"
msgid "Assets"
msgstr "Assets"
-#: src/components/NftCard.tsx:252
-#: src/components/NftCard.tsx:335
-#: src/components/MultiSelectActions.tsx:147
+#: src/components/NftCard.tsx:254
+#: src/components/NftCard.tsx:366
+#: src/components/MultiSelectActions.tsx:190
msgid "Assign Profile"
msgstr "Profil zuweisen"
@@ -181,11 +186,11 @@ msgstr "Block #{transactionHeight}"
#~ msgid "Bulk Assign Profile"
#~ msgstr "Profil massenhaft zuweisen"
-#: src/components/MultiSelectActions.tsx:156
+#: src/components/MultiSelectActions.tsx:199
msgid "Bulk Burn NFTs"
msgstr "Massenverbrennung von NFTs"
-#: src/components/MultiSelectActions.tsx:135
+#: src/components/MultiSelectActions.tsx:178
msgid "Bulk Transfer NFTs"
msgstr "Massentransfer NFTs"
@@ -194,12 +199,12 @@ msgstr "Massentransfer NFTs"
#~ msgstr "Massenaufhebung der Profilzuordnung"
#: src/pages/DidList.tsx:211
-#: src/components/NftCard.tsx:284
-#: src/components/MultiSelectActions.tsx:126
+#: src/components/NftCard.tsx:286
+#: src/components/MultiSelectActions.tsx:136
msgid "Burn"
msgstr "Verbrennung"
-#: src/components/NftCard.tsx:447
+#: src/components/NftCard.tsx:478
msgid "Burn NFT"
msgstr "NFT verbrennen"
@@ -226,7 +231,7 @@ msgstr "Wenn Sie diese Funktion deaktivieren, erstellen Sie ein Cold Wallet, in
#: src/pages/CreateWallet.tsx:252
#: src/pages/Addresses.tsx:209
#: src/components/TransferDialog.tsx:114
-#: src/components/NftCard.tsx:435
+#: src/components/NftCard.tsx:466
#: src/components/FeeOnlyDialog.tsx:98
#: src/components/ConfirmationDialog.tsx:242
#: src/components/AssignNftDialog.tsx:151
@@ -317,7 +322,7 @@ msgid "Copy"
msgstr "Kopieren"
#: src/pages/Offers.tsx:299
-#: src/components/NftCard.tsx:316
+#: src/components/NftCard.tsx:347
msgid "Copy ID"
msgstr "ID Kopieren"
@@ -361,7 +366,7 @@ msgstr "Währungssymbol"
msgid "Dark Mode"
msgstr "Dunkler Modus"
-#: src/components/NftCard.tsx:397
+#: src/components/NftCard.tsx:428
msgid "Data"
msgstr "Daten"
@@ -457,8 +462,8 @@ msgstr "Fertig"
msgid "Edit"
msgstr "Bearbeiten"
-#: src/components/NftCard.tsx:254
-#: src/components/MultiSelectActions.tsx:113
+#: src/components/NftCard.tsx:256
+#: src/components/MultiSelectActions.tsx:123
msgid "Edit Profile"
msgstr ""
@@ -522,7 +527,7 @@ msgstr "Geben Sie den neuen Anzeigenamen für dieses Profil ein."
msgid "Enter the new display name for this wallet."
msgstr "Geben Sie den neuen Anzeigenamen für den Wallet ein"
-#: src/components/NftCard.tsx:371
+#: src/components/NftCard.tsx:402
msgid "Enter URL"
msgstr "URL Eingeben"
@@ -604,7 +609,7 @@ msgstr "Höhe:"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Hide"
msgstr "Verstecken"
@@ -681,11 +686,11 @@ msgstr "Token ausgeben"
msgid "JSON"
msgstr "JSON"
-#: src/components/NftCard.tsx:384
+#: src/components/NftCard.tsx:415
msgid "Kind"
msgstr "Sorte"
-#: src/components/NftCard.tsx:139
+#: src/components/NftCard.tsx:141
msgid "Kind is required"
msgstr "Sorte ist erforderlich"
@@ -697,7 +702,7 @@ msgstr "Sprache"
msgid "Launcher Id"
msgstr "Launcher Id"
-#: src/components/NftCard.tsx:403
+#: src/components/NftCard.tsx:434
msgid "License"
msgstr "Lizenz"
@@ -730,7 +735,7 @@ msgstr " Stellen Sie sicher, dass Sie Ihre Mnemonic gespeichert haben. Sie könn
msgid "Manage offers"
msgstr "Offers verwalten"
-#: src/components/NftCard.tsx:400
+#: src/components/NftCard.tsx:431
msgid "Metadata"
msgstr "Metadaten"
@@ -807,7 +812,7 @@ msgstr "Netzwerk"
#: src/pages/MakeOffer.tsx:178
#: src/pages/CreateProfile.tsx:86
#: src/components/TransferDialog.tsx:96
-#: src/components/NftCard.tsx:419
+#: src/components/NftCard.tsx:450
#: src/components/FeeOnlyDialog.tsx:79
#: src/components/AssignNftDialog.tsx:133
msgid "Network Fee"
@@ -842,7 +847,7 @@ msgstr "Nächste Seite"
msgid "NFT"
msgstr "NFT"
-#: src/components/NftCard.tsx:221
+#: src/components/NftCard.tsx:223
msgid "NFT options"
msgstr "NFT optionen"
@@ -859,7 +864,7 @@ msgstr "NFTs"
msgid "No active sessions"
msgstr "Keine aktiven Sessions"
-#: src/components/NftCard.tsx:215
+#: src/components/NftCard.tsx:217
msgid "No collection"
msgstr "Keine Kollektion"
@@ -881,7 +886,7 @@ msgid "None"
msgstr "Nichts"
#: src/components/TransferDialog.tsx:50
-#: src/components/NftCard.tsx:142
+#: src/components/NftCard.tsx:144
#: src/components/FeeOnlyDialog.tsx:49
#: src/components/AssignNftDialog.tsx:58
msgid "Not enough funds to cover the fee"
@@ -1108,8 +1113,8 @@ msgstr "Alle Coins auswählen"
msgid "Select coin row"
msgstr "Coin-Reihe auswählen"
-#: src/components/NftCard.tsx:392
-#: src/components/NftCard.tsx:393
+#: src/components/NftCard.tsx:423
+#: src/components/NftCard.tsx:424
msgid "Select kind"
msgstr "Sorte auswählen"
@@ -1158,7 +1163,7 @@ msgstr "Einstellungen"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Show"
msgstr "Anzeigen"
@@ -1283,23 +1288,23 @@ msgstr "Es gibt noch keine Wallets, in die Sie sich einloggen können. Um loszul
msgid "This is the raw JSON spend bundle for this transaction. If you sign it, the transaction can be submitted to the mempool externally."
msgstr "Dies ist das Roh-JSON-Spendenbündel für diese Transaktion. Wenn Sie es signieren, kann die Transaktion extern an den Mempool übermittelt werden."
-#: src/components/NftCard.tsx:350
+#: src/components/NftCard.tsx:381
msgid "This will add an additional URL to the NFT. It is not possible to remove URLs later, so be careful with this and try to use permanent URLs if possible."
msgstr "Dadurch wird eine zusätzliche URL zum NFT hinzugefügt. Es ist nicht möglich, URLs später zu entfernen, seien Sie also vorsichtig und versuchen Sie, permanente URLs zu verwenden, wenn möglich."
-#: src/components/NftCard.tsx:340
+#: src/components/NftCard.tsx:371
msgid "This will assign the NFT to the selected profile."
msgstr "Dadurch wird das NFT dem ausgewählten Profil zugewiesen."
-#: src/components/MultiSelectActions.tsx:152
+#: src/components/MultiSelectActions.tsx:195
msgid "This will bulk assign the NFTs to the selected profile."
msgstr "Dadurch werden die NFTs dem ausgewählten Profil in der Masse zugewiesen."
-#: src/components/MultiSelectActions.tsx:161
+#: src/components/MultiSelectActions.tsx:204
msgid "This will bulk burn {selectedCount} NFTs. This cannot be undone. Are you sure you want to proceed?"
msgstr "Dadurch werden {selectedCount} NFTs verbrannt. Dies kann nicht rückgängig gemacht werden. Sind Sie sicher, dass Sie fortfahren möchten?"
-#: src/components/MultiSelectActions.tsx:140
+#: src/components/MultiSelectActions.tsx:183
msgid "This will bulk transfer {selectedCount} NFTs to another wallet. Are you sure you want to proceed?"
msgstr "Dadurch werden {selectedCount} NFTs in ein anderes Wallet übertragen. Sind Sie sicher, dass Sie fortfahren möchten?"
@@ -1315,7 +1320,7 @@ msgstr "Dadurch werden alle ausgewählten Coins zu einem einzigen kombiniert."
msgid "This will delete the offer from the wallet, but if it's shared externally it can still be accepted. The only way to truly cancel a public offer is by spending one or more of its coins."
msgstr "Dadurch wird das Offer aus dem Wallet gelöscht, aber wenn es extern geteilt wird, kann es immer noch akzeptiert werden. Der einzige Weg, ein öffentliches Angebot wirklich zu stornieren, besteht darin, einen oder mehrere seiner Coins auszugeben."
-#: src/components/NftCard.tsx:452
+#: src/components/NftCard.tsx:483
msgid "This will permanently delete the NFT by sending it to the burn address."
msgstr "Dadurch wird das NFT dauerhaft gelöscht, indem es an die Burn-Adresse gesendet wird."
@@ -1323,7 +1328,7 @@ msgstr "Dadurch wird das NFT dauerhaft gelöscht, indem es an die Burn-Adresse g
msgid "This will permanently delete the profile by sending it to the burn address."
msgstr "Dadurch wird das Profil dauerhaft gelöscht, indem es an die Burn-Adresse gesendet wird."
-#: src/components/NftCard.tsx:331
+#: src/components/NftCard.tsx:362
msgid "This will send the NFT to the provided address."
msgstr "Dadurch wird das NFT an die angegebene Adresse gesendet."
@@ -1380,14 +1385,14 @@ msgstr "Transaktionen"
#: src/pages/DidList.tsx:198
#: src/components/TransferDialog.tsx:117
-#: src/components/NftCard.tsx:237
-#: src/components/MultiSelectActions.tsx:100
+#: src/components/NftCard.tsx:239
+#: src/components/MultiSelectActions.tsx:110
#: src/components/FeeOnlyDialog.tsx:101
#: src/components/AssignNftDialog.tsx:154
msgid "Transfer"
msgstr "Transferieren"
-#: src/components/NftCard.tsx:326
+#: src/components/NftCard.tsx:357
msgid "Transfer NFT"
msgstr "NFT transferieren"
@@ -1437,8 +1442,8 @@ msgstr "Unbekanntes NFT"
#: src/pages/NftList.tsx:205
#: src/pages/NftList.tsx:216
#: src/components/OfferCard.tsx:177
-#: src/components/NftCard.tsx:194
-#: src/components/NftCard.tsx:212
+#: src/components/NftCard.tsx:196
+#: src/components/NftCard.tsx:214
#: src/components/ConfirmationDialog.tsx:482
#: src/components/ConfirmationDialog.tsx:496
msgid "Unnamed"
@@ -1462,11 +1467,11 @@ msgstr "Zu Dexie hochladen"
msgid "Upload to MintGarden"
msgstr "Zu MintGarden hochladen"
-#: src/components/NftCard.tsx:368
+#: src/components/NftCard.tsx:399
msgid "URL"
msgstr "URL"
-#: src/components/NftCard.tsx:138
+#: src/components/NftCard.tsx:140
msgid "URL is required"
msgstr "URL ist erforderlich"
diff --git a/src/locales/en-US/messages.po b/src/locales/en-US/messages.po
index eba186c3..51ed32be 100644
--- a/src/locales/en-US/messages.po
+++ b/src/locales/en-US/messages.po
@@ -38,7 +38,7 @@ msgstr "{peersToDeleteCount, plural, one {This will remove the peer from your co
msgid "{peersToDeleteCount, plural, one {Will temporarily prevent the peer from being connected to.} other {Will temporarily prevent the peers from being connected to.}}"
msgstr "{peersToDeleteCount, plural, one {Will temporarily prevent the peer from being connected to.} other {Will temporarily prevent the peers from being connected to.}}"
-#: src/components/MultiSelectActions.tsx:80
+#: src/components/MultiSelectActions.tsx:90
msgid "{selectedCount} selected"
msgstr "{selectedCount} selected"
@@ -55,7 +55,7 @@ msgid "{transactionSpentCount} inputs, {transactionCreatedCount} outputs"
msgstr "{transactionSpentCount} inputs, {transactionCreatedCount} outputs"
#: src/pages/PeerList.tsx:205
-#: src/components/MultiSelectActions.tsx:85
+#: src/components/MultiSelectActions.tsx:95
#: src/components/AddressList.tsx:68
msgid "Actions"
msgstr "Actions"
@@ -64,7 +64,7 @@ msgstr "Actions"
msgid "Add new peer"
msgstr "Add new peer"
-#: src/components/NftCard.tsx:347
+#: src/components/NftCard.tsx:378
msgid "Add NFT URL"
msgstr "Add NFT URL"
@@ -80,8 +80,13 @@ msgstr "Add the assets you are offering."
msgid "Add the assets you are requesting."
msgstr "Add the assets you are requesting."
-#: src/components/NftCard.tsx:270
-#: src/components/NftCard.tsx:438
+#: src/components/NftCard.tsx:317
+#: src/components/MultiSelectActions.tsx:169
+msgid "Add to Offer"
+msgstr "Add to Offer"
+
+#: src/components/NftCard.tsx:272
+#: src/components/NftCard.tsx:469
msgid "Add URL"
msgstr "Add URL"
@@ -152,9 +157,9 @@ msgstr "Asset"
msgid "Assets"
msgstr "Assets"
-#: src/components/NftCard.tsx:252
-#: src/components/NftCard.tsx:335
-#: src/components/MultiSelectActions.tsx:147
+#: src/components/NftCard.tsx:254
+#: src/components/NftCard.tsx:366
+#: src/components/MultiSelectActions.tsx:190
msgid "Assign Profile"
msgstr "Assign Profile"
@@ -181,11 +186,11 @@ msgstr "Block #{transactionHeight}"
#~ msgid "Bulk Assign Profile"
#~ msgstr "Bulk Assign Profile"
-#: src/components/MultiSelectActions.tsx:156
+#: src/components/MultiSelectActions.tsx:199
msgid "Bulk Burn NFTs"
msgstr "Bulk Burn NFTs"
-#: src/components/MultiSelectActions.tsx:135
+#: src/components/MultiSelectActions.tsx:178
msgid "Bulk Transfer NFTs"
msgstr "Bulk Transfer NFTs"
@@ -194,12 +199,12 @@ msgstr "Bulk Transfer NFTs"
#~ msgstr "Bulk Unassign Profile"
#: src/pages/DidList.tsx:211
-#: src/components/NftCard.tsx:284
-#: src/components/MultiSelectActions.tsx:126
+#: src/components/NftCard.tsx:286
+#: src/components/MultiSelectActions.tsx:136
msgid "Burn"
msgstr "Burn"
-#: src/components/NftCard.tsx:447
+#: src/components/NftCard.tsx:478
msgid "Burn NFT"
msgstr "Burn NFT"
@@ -226,7 +231,7 @@ msgstr "By disabling this you are creating a cold wallet, with no ability to sig
#: src/pages/CreateWallet.tsx:252
#: src/pages/Addresses.tsx:209
#: src/components/TransferDialog.tsx:114
-#: src/components/NftCard.tsx:435
+#: src/components/NftCard.tsx:466
#: src/components/FeeOnlyDialog.tsx:98
#: src/components/ConfirmationDialog.tsx:242
#: src/components/AssignNftDialog.tsx:151
@@ -317,7 +322,7 @@ msgid "Copy"
msgstr "Copy"
#: src/pages/Offers.tsx:299
-#: src/components/NftCard.tsx:316
+#: src/components/NftCard.tsx:347
msgid "Copy ID"
msgstr "Copy ID"
@@ -361,7 +366,7 @@ msgstr "Currency Symbol"
msgid "Dark Mode"
msgstr "Dark Mode"
-#: src/components/NftCard.tsx:397
+#: src/components/NftCard.tsx:428
msgid "Data"
msgstr "Data"
@@ -457,8 +462,8 @@ msgstr "Done"
msgid "Edit"
msgstr "Edit"
-#: src/components/NftCard.tsx:254
-#: src/components/MultiSelectActions.tsx:113
+#: src/components/NftCard.tsx:256
+#: src/components/MultiSelectActions.tsx:123
msgid "Edit Profile"
msgstr "Edit Profile"
@@ -522,7 +527,7 @@ msgstr "Enter the new display name for this profile."
msgid "Enter the new display name for this wallet."
msgstr "Enter the new display name for this wallet."
-#: src/components/NftCard.tsx:371
+#: src/components/NftCard.tsx:402
msgid "Enter URL"
msgstr "Enter URL"
@@ -604,7 +609,7 @@ msgstr "Height:"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Hide"
msgstr "Hide"
@@ -681,11 +686,11 @@ msgstr "Issue Token"
msgid "JSON"
msgstr "JSON"
-#: src/components/NftCard.tsx:384
+#: src/components/NftCard.tsx:415
msgid "Kind"
msgstr "Kind"
-#: src/components/NftCard.tsx:139
+#: src/components/NftCard.tsx:141
msgid "Kind is required"
msgstr "Kind is required"
@@ -697,7 +702,7 @@ msgstr "Language"
msgid "Launcher Id"
msgstr "Launcher Id"
-#: src/components/NftCard.tsx:403
+#: src/components/NftCard.tsx:434
msgid "License"
msgstr "License"
@@ -730,7 +735,7 @@ msgstr "Make sure you have saved your mnemonic. You will not be able to access i
msgid "Manage offers"
msgstr "Manage offers"
-#: src/components/NftCard.tsx:400
+#: src/components/NftCard.tsx:431
msgid "Metadata"
msgstr "Metadata"
@@ -807,7 +812,7 @@ msgstr "Network"
#: src/pages/MakeOffer.tsx:178
#: src/pages/CreateProfile.tsx:86
#: src/components/TransferDialog.tsx:96
-#: src/components/NftCard.tsx:419
+#: src/components/NftCard.tsx:450
#: src/components/FeeOnlyDialog.tsx:79
#: src/components/AssignNftDialog.tsx:133
msgid "Network Fee"
@@ -842,7 +847,7 @@ msgstr "Next page"
msgid "NFT"
msgstr "NFT"
-#: src/components/NftCard.tsx:221
+#: src/components/NftCard.tsx:223
msgid "NFT options"
msgstr "NFT options"
@@ -859,7 +864,7 @@ msgstr "NFTs"
msgid "No active sessions"
msgstr "No active sessions"
-#: src/components/NftCard.tsx:215
+#: src/components/NftCard.tsx:217
msgid "No collection"
msgstr "No collection"
@@ -881,7 +886,7 @@ msgid "None"
msgstr "None"
#: src/components/TransferDialog.tsx:50
-#: src/components/NftCard.tsx:142
+#: src/components/NftCard.tsx:144
#: src/components/FeeOnlyDialog.tsx:49
#: src/components/AssignNftDialog.tsx:58
msgid "Not enough funds to cover the fee"
@@ -1108,8 +1113,8 @@ msgstr "Select all coins"
msgid "Select coin row"
msgstr "Select coin row"
-#: src/components/NftCard.tsx:392
-#: src/components/NftCard.tsx:393
+#: src/components/NftCard.tsx:423
+#: src/components/NftCard.tsx:424
msgid "Select kind"
msgstr "Select kind"
@@ -1158,7 +1163,7 @@ msgstr "Settings"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Show"
msgstr "Show"
@@ -1283,23 +1288,23 @@ msgstr "There aren't any wallets to log into yet. To get started, create a new w
msgid "This is the raw JSON spend bundle for this transaction. If you sign it, the transaction can be submitted to the mempool externally."
msgstr "This is the raw JSON spend bundle for this transaction. If you sign it, the transaction can be submitted to the mempool externally."
-#: src/components/NftCard.tsx:350
+#: src/components/NftCard.tsx:381
msgid "This will add an additional URL to the NFT. It is not possible to remove URLs later, so be careful with this and try to use permanent URLs if possible."
msgstr "This will add an additional URL to the NFT. It is not possible to remove URLs later, so be careful with this and try to use permanent URLs if possible."
-#: src/components/NftCard.tsx:340
+#: src/components/NftCard.tsx:371
msgid "This will assign the NFT to the selected profile."
msgstr "This will assign the NFT to the selected profile."
-#: src/components/MultiSelectActions.tsx:152
+#: src/components/MultiSelectActions.tsx:195
msgid "This will bulk assign the NFTs to the selected profile."
msgstr "This will bulk assign the NFTs to the selected profile."
-#: src/components/MultiSelectActions.tsx:161
+#: src/components/MultiSelectActions.tsx:204
msgid "This will bulk burn {selectedCount} NFTs. This cannot be undone. Are you sure you want to proceed?"
msgstr "This will bulk burn {selectedCount} NFTs. This cannot be undone. Are you sure you want to proceed?"
-#: src/components/MultiSelectActions.tsx:140
+#: src/components/MultiSelectActions.tsx:183
msgid "This will bulk transfer {selectedCount} NFTs to another wallet. Are you sure you want to proceed?"
msgstr "This will bulk transfer {selectedCount} NFTs to another wallet. Are you sure you want to proceed?"
@@ -1315,7 +1320,7 @@ msgstr "This will combine all of the selected coins into one."
msgid "This will delete the offer from the wallet, but if it's shared externally it can still be accepted. The only way to truly cancel a public offer is by spending one or more of its coins."
msgstr "This will delete the offer from the wallet, but if it's shared externally it can still be accepted. The only way to truly cancel a public offer is by spending one or more of its coins."
-#: src/components/NftCard.tsx:452
+#: src/components/NftCard.tsx:483
msgid "This will permanently delete the NFT by sending it to the burn address."
msgstr "This will permanently delete the NFT by sending it to the burn address."
@@ -1323,7 +1328,7 @@ msgstr "This will permanently delete the NFT by sending it to the burn address."
msgid "This will permanently delete the profile by sending it to the burn address."
msgstr "This will permanently delete the profile by sending it to the burn address."
-#: src/components/NftCard.tsx:331
+#: src/components/NftCard.tsx:362
msgid "This will send the NFT to the provided address."
msgstr "This will send the NFT to the provided address."
@@ -1380,14 +1385,14 @@ msgstr "Transactions"
#: src/pages/DidList.tsx:198
#: src/components/TransferDialog.tsx:117
-#: src/components/NftCard.tsx:237
-#: src/components/MultiSelectActions.tsx:100
+#: src/components/NftCard.tsx:239
+#: src/components/MultiSelectActions.tsx:110
#: src/components/FeeOnlyDialog.tsx:101
#: src/components/AssignNftDialog.tsx:154
msgid "Transfer"
msgstr "Transfer"
-#: src/components/NftCard.tsx:326
+#: src/components/NftCard.tsx:357
msgid "Transfer NFT"
msgstr "Transfer NFT"
@@ -1437,8 +1442,8 @@ msgstr "Unknown NFT"
#: src/pages/NftList.tsx:205
#: src/pages/NftList.tsx:216
#: src/components/OfferCard.tsx:177
-#: src/components/NftCard.tsx:194
-#: src/components/NftCard.tsx:212
+#: src/components/NftCard.tsx:196
+#: src/components/NftCard.tsx:214
#: src/components/ConfirmationDialog.tsx:482
#: src/components/ConfirmationDialog.tsx:496
msgid "Unnamed"
@@ -1462,11 +1467,11 @@ msgstr "Upload to Dexie"
msgid "Upload to MintGarden"
msgstr "Upload to MintGarden"
-#: src/components/NftCard.tsx:368
+#: src/components/NftCard.tsx:399
msgid "URL"
msgstr "URL"
-#: src/components/NftCard.tsx:138
+#: src/components/NftCard.tsx:140
msgid "URL is required"
msgstr "URL is required"
diff --git a/src/locales/zh-CN/messages.po b/src/locales/zh-CN/messages.po
index 68f1b914..8f3a3d45 100644
--- a/src/locales/zh-CN/messages.po
+++ b/src/locales/zh-CN/messages.po
@@ -38,7 +38,7 @@ msgstr "{peersToDeleteCount, plural, one {这将移除与该节点的连接. 如
msgid "{peersToDeleteCount, plural, one {Will temporarily prevent the peer from being connected to.} other {Will temporarily prevent the peers from being connected to.}}"
msgstr "{peersToDeleteCount, plural, one {将暂时阻止与该节点的连接.} other {将暂时阻止与该节点的连接.}}"
-#: src/components/MultiSelectActions.tsx:80
+#: src/components/MultiSelectActions.tsx:90
msgid "{selectedCount} selected"
msgstr "已选择 {selectedCount}"
@@ -55,7 +55,7 @@ msgid "{transactionSpentCount} inputs, {transactionCreatedCount} outputs"
msgstr ""
#: src/pages/PeerList.tsx:205
-#: src/components/MultiSelectActions.tsx:85
+#: src/components/MultiSelectActions.tsx:95
#: src/components/AddressList.tsx:68
msgid "Actions"
msgstr "操作"
@@ -64,7 +64,7 @@ msgstr "操作"
msgid "Add new peer"
msgstr "添加新节点"
-#: src/components/NftCard.tsx:347
+#: src/components/NftCard.tsx:378
msgid "Add NFT URL"
msgstr "添加NFT网址"
@@ -80,8 +80,13 @@ msgstr "添加提供的资产."
msgid "Add the assets you are requesting."
msgstr "添加请求的资产."
-#: src/components/NftCard.tsx:270
-#: src/components/NftCard.tsx:438
+#: src/components/NftCard.tsx:317
+#: src/components/MultiSelectActions.tsx:169
+msgid "Add to Offer"
+msgstr ""
+
+#: src/components/NftCard.tsx:272
+#: src/components/NftCard.tsx:469
msgid "Add URL"
msgstr "添加网址"
@@ -152,9 +157,9 @@ msgstr "资产"
msgid "Assets"
msgstr "资产"
-#: src/components/NftCard.tsx:252
-#: src/components/NftCard.tsx:335
-#: src/components/MultiSelectActions.tsx:147
+#: src/components/NftCard.tsx:254
+#: src/components/NftCard.tsx:366
+#: src/components/MultiSelectActions.tsx:190
msgid "Assign Profile"
msgstr "分配个人资料"
@@ -181,11 +186,11 @@ msgstr "区块 #{transactionHeight}"
#~ msgid "Bulk Assign Profile"
#~ msgstr "批量分配个人资料"
-#: src/components/MultiSelectActions.tsx:156
+#: src/components/MultiSelectActions.tsx:199
msgid "Bulk Burn NFTs"
msgstr "批量销毁NFT"
-#: src/components/MultiSelectActions.tsx:135
+#: src/components/MultiSelectActions.tsx:178
msgid "Bulk Transfer NFTs"
msgstr "批量转移NFT"
@@ -194,12 +199,12 @@ msgstr "批量转移NFT"
#~ msgstr "批量解除分配个人资料"
#: src/pages/DidList.tsx:211
-#: src/components/NftCard.tsx:284
-#: src/components/MultiSelectActions.tsx:126
+#: src/components/NftCard.tsx:286
+#: src/components/MultiSelectActions.tsx:136
msgid "Burn"
msgstr "销毁"
-#: src/components/NftCard.tsx:447
+#: src/components/NftCard.tsx:478
msgid "Burn NFT"
msgstr "销毁NFT"
@@ -226,7 +231,7 @@ msgstr "禁用此功能后, 将创建一个冷钱包, 该钱包无法签署交
#: src/pages/CreateWallet.tsx:252
#: src/pages/Addresses.tsx:209
#: src/components/TransferDialog.tsx:114
-#: src/components/NftCard.tsx:435
+#: src/components/NftCard.tsx:466
#: src/components/FeeOnlyDialog.tsx:98
#: src/components/ConfirmationDialog.tsx:242
#: src/components/AssignNftDialog.tsx:151
@@ -316,7 +321,7 @@ msgid "Copy"
msgstr "复制"
#: src/pages/Offers.tsx:299
-#: src/components/NftCard.tsx:316
+#: src/components/NftCard.tsx:347
msgid "Copy ID"
msgstr "复制ID"
@@ -360,7 +365,7 @@ msgstr "货币符号"
msgid "Dark Mode"
msgstr "深色模式"
-#: src/components/NftCard.tsx:397
+#: src/components/NftCard.tsx:428
msgid "Data"
msgstr "数据"
@@ -456,8 +461,8 @@ msgstr "确定"
msgid "Edit"
msgstr "编辑"
-#: src/components/NftCard.tsx:254
-#: src/components/MultiSelectActions.tsx:113
+#: src/components/NftCard.tsx:256
+#: src/components/MultiSelectActions.tsx:123
msgid "Edit Profile"
msgstr ""
@@ -521,7 +526,7 @@ msgstr "输入此个人资料的新显示名称."
msgid "Enter the new display name for this wallet."
msgstr "输入此钱包的新显示名称."
-#: src/components/NftCard.tsx:371
+#: src/components/NftCard.tsx:402
msgid "Enter URL"
msgstr "输入网址"
@@ -602,7 +607,7 @@ msgstr "高度:"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Hide"
msgstr "隐藏"
@@ -679,11 +684,11 @@ msgstr "发行代币"
msgid "JSON"
msgstr "JSON"
-#: src/components/NftCard.tsx:384
+#: src/components/NftCard.tsx:415
msgid "Kind"
msgstr "类型"
-#: src/components/NftCard.tsx:139
+#: src/components/NftCard.tsx:141
msgid "Kind is required"
msgstr "需提供类型"
@@ -695,7 +700,7 @@ msgstr "语言"
msgid "Launcher Id"
msgstr "启动器Id"
-#: src/components/NftCard.tsx:403
+#: src/components/NftCard.tsx:434
msgid "License"
msgstr "许可证"
@@ -728,7 +733,7 @@ msgstr "请确保已保存助记词. 以后无法访问它, 因为它不会保
msgid "Manage offers"
msgstr "管理报价"
-#: src/components/NftCard.tsx:400
+#: src/components/NftCard.tsx:431
msgid "Metadata"
msgstr "元数据"
@@ -805,7 +810,7 @@ msgstr "网络"
#: src/pages/MakeOffer.tsx:178
#: src/pages/CreateProfile.tsx:86
#: src/components/TransferDialog.tsx:96
-#: src/components/NftCard.tsx:419
+#: src/components/NftCard.tsx:450
#: src/components/FeeOnlyDialog.tsx:79
#: src/components/AssignNftDialog.tsx:133
msgid "Network Fee"
@@ -840,7 +845,7 @@ msgstr "下一页"
msgid "NFT"
msgstr "NFT"
-#: src/components/NftCard.tsx:221
+#: src/components/NftCard.tsx:223
msgid "NFT options"
msgstr "NFT选项"
@@ -857,7 +862,7 @@ msgstr "NFT"
msgid "No active sessions"
msgstr "没有活跃的会话"
-#: src/components/NftCard.tsx:215
+#: src/components/NftCard.tsx:217
msgid "No collection"
msgstr "无集合"
@@ -879,7 +884,7 @@ msgid "None"
msgstr "无"
#: src/components/TransferDialog.tsx:50
-#: src/components/NftCard.tsx:142
+#: src/components/NftCard.tsx:144
#: src/components/FeeOnlyDialog.tsx:49
#: src/components/AssignNftDialog.tsx:58
msgid "Not enough funds to cover the fee"
@@ -1105,8 +1110,8 @@ msgstr "选择所有硬币"
msgid "Select coin row"
msgstr "选择硬币行"
-#: src/components/NftCard.tsx:392
-#: src/components/NftCard.tsx:393
+#: src/components/NftCard.tsx:423
+#: src/components/NftCard.tsx:424
msgid "Select kind"
msgstr "选择种类"
@@ -1155,7 +1160,7 @@ msgstr "设置"
#: src/pages/Token.tsx:259
#: src/pages/NftList.tsx:245
#: src/pages/DidList.tsx:240
-#: src/components/NftCard.tsx:303
+#: src/components/NftCard.tsx:334
msgid "Show"
msgstr "显示"
@@ -1277,23 +1282,23 @@ msgstr "目前没有可登录的钱包. 要开始, 请创建一个新钱包或
msgid "This is the raw JSON spend bundle for this transaction. If you sign it, the transaction can be submitted to the mempool externally."
msgstr "这是该交易的原始 JSON 支出捆绑包. 如果签署它, 交易可以通过外部提交到内存池."
-#: src/components/NftCard.tsx:350
+#: src/components/NftCard.tsx:381
msgid "This will add an additional URL to the NFT. It is not possible to remove URLs later, so be careful with this and try to use permanent URLs if possible."
msgstr "这将为 NFT 添加一个额外的 URL. 以后无法删除 URL, 因此请小心操作, 如果可能的话, 尽量使用永久性的 URL."
-#: src/components/NftCard.tsx:340
+#: src/components/NftCard.tsx:371
msgid "This will assign the NFT to the selected profile."
msgstr "这将把 NFT 分配给选定的个人资料."
-#: src/components/MultiSelectActions.tsx:152
+#: src/components/MultiSelectActions.tsx:195
msgid "This will bulk assign the NFTs to the selected profile."
msgstr "这将批量把 NFT 分配给选定的个人资料."
-#: src/components/MultiSelectActions.tsx:161
+#: src/components/MultiSelectActions.tsx:204
msgid "This will bulk burn {selectedCount} NFTs. This cannot be undone. Are you sure you want to proceed?"
msgstr "这将批量销毁 {selectedCount} 个 NFT. 此操作无法撤销. 确定要继续吗?"
-#: src/components/MultiSelectActions.tsx:140
+#: src/components/MultiSelectActions.tsx:183
msgid "This will bulk transfer {selectedCount} NFTs to another wallet. Are you sure you want to proceed?"
msgstr "这将批量转移 {selectedCount} 个 NFT 到另一个钱包. 确定要继续吗?"
@@ -1309,7 +1314,7 @@ msgstr "这将把所有选中的币合并为一个."
msgid "This will delete the offer from the wallet, but if it's shared externally it can still be accepted. The only way to truly cancel a public offer is by spending one or more of its coins."
msgstr "这将从钱包中删除该报价, 但如果已被外部共享, 仍然可以被接受. 真正取消公共报价的唯一方式是花费其中一个或多个币."
-#: src/components/NftCard.tsx:452
+#: src/components/NftCard.tsx:483
msgid "This will permanently delete the NFT by sending it to the burn address."
msgstr "这将通过把 NFT 发送到销毁地址来永久删除它."
@@ -1317,7 +1322,7 @@ msgstr "这将通过把 NFT 发送到销毁地址来永久删除它."
msgid "This will permanently delete the profile by sending it to the burn address."
msgstr "这将通过把个人资料发送到销毁地址来永久删除它."
-#: src/components/NftCard.tsx:331
+#: src/components/NftCard.tsx:362
msgid "This will send the NFT to the provided address."
msgstr "这将把NFT发送到提供的地址."
@@ -1374,14 +1379,14 @@ msgstr "交易"
#: src/pages/DidList.tsx:198
#: src/components/TransferDialog.tsx:117
-#: src/components/NftCard.tsx:237
-#: src/components/MultiSelectActions.tsx:100
+#: src/components/NftCard.tsx:239
+#: src/components/MultiSelectActions.tsx:110
#: src/components/FeeOnlyDialog.tsx:101
#: src/components/AssignNftDialog.tsx:154
msgid "Transfer"
msgstr "转移"
-#: src/components/NftCard.tsx:326
+#: src/components/NftCard.tsx:357
msgid "Transfer NFT"
msgstr "转移NFT"
@@ -1430,8 +1435,8 @@ msgstr "未知NFT"
#: src/pages/NftList.tsx:205
#: src/pages/NftList.tsx:216
#: src/components/OfferCard.tsx:177
-#: src/components/NftCard.tsx:194
-#: src/components/NftCard.tsx:212
+#: src/components/NftCard.tsx:196
+#: src/components/NftCard.tsx:214
#: src/components/ConfirmationDialog.tsx:482
#: src/components/ConfirmationDialog.tsx:496
msgid "Unnamed"
@@ -1455,11 +1460,11 @@ msgstr "提交到Dexie"
msgid "Upload to MintGarden"
msgstr "提交到MintGarden"
-#: src/components/NftCard.tsx:368
+#: src/components/NftCard.tsx:399
msgid "URL"
msgstr "网址"
-#: src/components/NftCard.tsx:138
+#: src/components/NftCard.tsx:140
msgid "URL is required"
msgstr "需提供网址"