From 0c1c61a4c50b2f3aa5208739e478e9fa5db565b1 Mon Sep 17 00:00:00 2001 From: mega123-art Date: Sat, 20 Jun 2026 15:43:07 +0530 Subject: [PATCH] feat(mobile): add skill dispose re-equip parity --- surfaces/webview/src/market/MarketScreen.tsx | 2 + surfaces/webview/src/market/SkillCardTile.tsx | 9 ++- .../webview/src/market/SkillDetailView.tsx | 56 +++++++++++++++++-- surfaces/webview/src/state/store.tsx | 20 ++++++- surfaces/webview/src/transport/protocol.ts | 6 +- 5 files changed, 86 insertions(+), 7 deletions(-) diff --git a/surfaces/webview/src/market/MarketScreen.tsx b/surfaces/webview/src/market/MarketScreen.tsx index 8a31e9a..dd84a26 100644 --- a/surfaces/webview/src/market/MarketScreen.tsx +++ b/surfaces/webview/src/market/MarketScreen.tsx @@ -49,6 +49,7 @@ export function MarketScreen() { detail={state.marketDetail} owned={state.marketOwned.includes(state.marketDetail.card.name)} onBack={() => { send({ type: "ownedSkills" }); clearMarketDetail(); }} + onOpenSkill={(card) => send({ type: "getSkillDetail", mint: card.id })} /> {state.buyCelebrate && } @@ -195,6 +196,7 @@ export function MarketScreen() { key={card.id} card={card} owned={state.marketOwned.includes(card.name)} + disposed={Object.values(state.marketDisposed).includes(card.id)} firing={state.firingSkill === card.name} onOpen={handleOpenCard} /> diff --git a/surfaces/webview/src/market/SkillCardTile.tsx b/surfaces/webview/src/market/SkillCardTile.tsx index 4dfb9c8..8078dd0 100644 --- a/surfaces/webview/src/market/SkillCardTile.tsx +++ b/surfaces/webview/src/market/SkillCardTile.tsx @@ -4,11 +4,12 @@ import { SkillIcon } from "../icons"; interface Props { card: SkillCard; owned?: boolean; + disposed?: boolean; firing?: boolean; onOpen: (card: SkillCard) => void; } -export function SkillCardTile({ card, owned, firing, onOpen }: Props) { +export function SkillCardTile({ card, owned, disposed, firing, onOpen }: Props) { const priceSol = card.price ? (Number(card.price) / 1_000_000_000).toFixed(3) : null; return ( + ))} + + + )} + {Array.isArray(notes) && notes.length > 0 && (

Comments

@@ -107,7 +133,29 @@ export function SkillDetailView({ detail, owned, onBack }: Props) { )}
- {!owned && ( + {owned && ( +
+ +
+ )} + + {!owned && disposed && ( +
+ +
+ )} + + {!owned && !disposed && (