From a089e3634982f372104884c3fa15576a89e5a870 Mon Sep 17 00:00:00 2001 From: evavirseda Date: Fri, 12 Apr 2024 10:07:47 +0200 Subject: [PATCH] feat: add mana cost to burn nft --- .../components/popups/BurnNftPopup.svelte | 91 +++++++++++++++++++ .../desktop/components/popups/Popup.svelte | 2 + .../modals/CollectibleActionsModal.svelte | 29 +----- .../auxiliary/popup/enums/popup-id.enum.ts | 1 + 4 files changed, 97 insertions(+), 26 deletions(-) create mode 100644 packages/desktop/components/popups/BurnNftPopup.svelte diff --git a/packages/desktop/components/popups/BurnNftPopup.svelte b/packages/desktop/components/popups/BurnNftPopup.svelte new file mode 100644 index 00000000000..c855132b699 --- /dev/null +++ b/packages/desktop/components/popups/BurnNftPopup.svelte @@ -0,0 +1,91 @@ + + +
+ + {localize('actions.confirmNftBurn.title', { + values: { + nftName: nft.name, + }, + })} + +
+ {localize('actions.confirmNftBurn.description')} + + +
+ + + + +
diff --git a/packages/desktop/components/popups/Popup.svelte b/packages/desktop/components/popups/Popup.svelte index 14d0d944b97..2aae7fb7ba0 100644 --- a/packages/desktop/components/popups/Popup.svelte +++ b/packages/desktop/components/popups/Popup.svelte @@ -63,6 +63,7 @@ import CreateDelegationPopup from './CreateDelegationPopup.svelte' import ClaimDelegationRewardsPopup from './ClaimDelegationRewardsPopup.svelte' import ImplicitAccountAddressPopup from './ImplicitAccountAddressPopup.svelte' + import BurnNftPopup from './BurnNftPopup.svelte' export let id: PopupId export let props: any @@ -157,6 +158,7 @@ [PopupId.CreateDelegation]: CreateDelegationPopup, [PopupId.ClaimDelegationRewards]: ClaimDelegationRewardsPopup, [PopupId.ImplicitAccountAddress]: ImplicitAccountAddressPopup, + [PopupId.BurnNft]: BurnNftPopup, } function onKey(event: KeyboardEvent): void { diff --git a/packages/shared/components/modals/CollectibleActionsModal.svelte b/packages/shared/components/modals/CollectibleActionsModal.svelte index b1939c68201..b4d647c72eb 100644 --- a/packages/shared/components/modals/CollectibleActionsModal.svelte +++ b/packages/shared/components/modals/CollectibleActionsModal.svelte @@ -3,12 +3,8 @@ import { openUrlInBrowser, time } from '@core/app' import { localize } from '@core/i18n' import { INft, rewriteIpfsUri } from '@core/nfts' - import { checkActiveProfileAuth } from '@core/profile/actions' - import { CollectiblesRoute, collectiblesRouter } from '@core/router' - import { burnNft } from '@core/wallet' - import { closePopup, openPopup, PopupId } from '@auxiliary/popup' + import { openPopup, PopupId } from '@auxiliary/popup' import { activeProfile, updateActiveProfile } from '@core/profile/stores' - import { TextHintVariant } from '@ui/enums' import { Icon as IconEnum } from '@auxiliary/icon' export let modal: Modal @@ -43,30 +39,11 @@ disabled: isLocked, }, ] - function openBurnNft(): void { openPopup({ - id: PopupId.Confirmation, + id: PopupId.BurnNft, props: { - title: localize('actions.confirmNftBurn.title', { - values: { - nftName: nft.name, - }, - }), - description: localize('actions.confirmNftBurn.description'), - hint: localize('actions.confirmNftBurn.hint'), - variant: TextHintVariant.Warning, - confirmText: localize('actions.burn'), - onConfirm: async () => { - await checkActiveProfileAuth( - async () => { - await burnNft(nft.id) - $collectiblesRouter.goTo(CollectiblesRoute.Gallery) - closePopup() - }, - { stronghold: true } - ) - }, + nft: nft, }, }) } diff --git a/packages/shared/lib/auxiliary/popup/enums/popup-id.enum.ts b/packages/shared/lib/auxiliary/popup/enums/popup-id.enum.ts index 04a1962cc2b..b03d9c9d496 100644 --- a/packages/shared/lib/auxiliary/popup/enums/popup-id.enum.ts +++ b/packages/shared/lib/auxiliary/popup/enums/popup-id.enum.ts @@ -55,4 +55,5 @@ export enum PopupId { ActivateAccount = 'activateAccount', ClaimDelegationRewards = 'claimDelegationRewardsPopup', ImplicitAccountAddress = 'implicitAccountAddressPopup', + BurnNft = 'burnNft', }