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 "需提供网址"