diff --git a/package-lock.json b/package-lock.json index 68579bd3b..939977086 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "xverse-web-extension", - "version": "0.11.6", + "version": "0.12.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "xverse-web-extension", - "version": "0.11.6", + "version": "0.12.0", "dependencies": { "@react-spring/web": "^9.6.1", "@secretkeylabs/xverse-core": "^1.0.0", diff --git a/src/app/screens/ordinalDetail/index.tsx b/src/app/screens/ordinalDetail/index.tsx index d27cee9d3..42a9383c0 100644 --- a/src/app/screens/ordinalDetail/index.tsx +++ b/src/app/screens/ordinalDetail/index.tsx @@ -130,18 +130,18 @@ const RowContainer = styled.div((props) => ({ flexDirection: 'row', })); -const ColumnContainer = styled.div((props) => ({ +const ColumnContainer = styled.div({ display: 'flex', alignItems: 'flex-start', flexDirection: 'column', width: '100%', -})); +}); -const Row = styled.div((props) => ({ +const Row = styled.div({ display: 'flex', justifyContent: 'space-between', flexDirection: 'row', -})); +}); const MintLimitContainer = styled.div((props) => ({ marginLeft: props.theme.spacing(30), @@ -299,10 +299,8 @@ function OrdinalDetailScreen() { }, [selectedOrdinal?.content_type]); useEffect(() => { - if (textContent) { - if (textContent.includes('brc-20')) { - setIsBrc20Ordinal(true); - } + if (textContent?.includes('brc-20')) { + setIsBrc20Ordinal(true); } }, [textContent]); @@ -317,6 +315,7 @@ function OrdinalDetailScreen() { url: chrome.runtime.getURL('options.html#/nft-dashboard/ordinal-detail'), }); }; + const showAlert = () => { setshowSendOridnalsAlert(true); }; @@ -343,79 +342,6 @@ function OrdinalDetailScreen() { window.open(`https://www.ord.io/${selectedOrdinal?.number}`); }; - const showBrc20OrdinalDetail = (isGallery: boolean) => { - const regex = /”/g; - const validBrcContentValue = textContent.replace(regex, '"'); - const content = JSON.parse(validBrcContentValue); - if (content.op === 'mint') { - return ( - - - {!isGallery && ( - - )} - - ); - } - if (content.op === 'transfer') { - return ( - - - - - - {!isGallery && ( - - )} - - ); - } - if (content.op === 'deploy') { - return ( - - - - - - - - {!isGallery && ( - - )} - - ); - } - }; - const ownedByView = ( {t('OWNED_BY')} @@ -431,11 +357,119 @@ function OrdinalDetailScreen() { ); + + const ordinalDescriptionData = ( + <> + + {selectedOrdinal?.content_length && ( + + )} + {selectedOrdinal?.content_type && ( + + )} + {selectedOrdinal?.value && ( + + )} + {selectedOrdinal?.timestamp && ( + + )} + {selectedOrdinal?.genesis_block_height && ( + + )} + {selectedOrdinal?.location && ( + + )} + + ); + + const showBrc20OrdinalDetail = (isGallery: boolean) => { + try { + const regex = /”/g; + const validBrcContentValue = textContent.replace(regex, '"'); + const content = JSON.parse(validBrcContentValue); + + switch (content.op) { + case 'mint': + return ( + + + {!isGallery && ( + + )} + + ); + case 'transfer': + return ( + + + + + + {!isGallery && ( + + )} + + ); + case 'deploy': + return ( + + + + + + + + {!isGallery && ( + + )} + + ); + default: + return null; + } + } catch (error) { + return isGallery ? ordinalDescriptionData : ownedByView; + } + }; + const extensionView = ( - - {isBrc20Ordinal ? t('BRC20_INSCRIPTION') : t('COLLECTIBLE')} - + {isBrc20Ordinal ? t('BRC20_INSCRIPTION') : t('COLLECTIBLE')} {`${t('INSCRIPTION')} ${selectedOrdinal?.number}`} <> @@ -467,36 +501,6 @@ function OrdinalDetailScreen() { ); - const ordinalDescriptionData = ( - <> - - {selectedOrdinal?.content_length && ( - - )} - {selectedOrdinal?.content_type && ( - - )} - {selectedOrdinal?.value && ( - - )} - {selectedOrdinal?.timestamp && ( - - )} - {selectedOrdinal?.genesis_block_height && ( - - )} - {selectedOrdinal?.location && ( - - )} - - ); - const galleryView = ( diff --git a/src/app/screens/ordinals/brc20Tile.tsx b/src/app/screens/ordinals/brc20Tile.tsx index 97d3bcfc4..171f77964 100644 --- a/src/app/screens/ordinals/brc20Tile.tsx +++ b/src/app/screens/ordinals/brc20Tile.tsx @@ -53,6 +53,14 @@ const PlaceholderImageContainer = styled.div(({ maxHeight: isGalleryOpen ? (inNftDetail ? 450 : 300) : isSmallImage ? 50 : 150, })); +const OrdinalContentText = styled.h1((props) => ({ + ...props.theme.body_medium_m, + color: props.theme.colors.white[0], + fontSize: props.inNftSend ? 15 : 'calc(0.8vw + 2vh)', + overflow: 'hidden', + textAlign: 'center', +})); + interface TextProps { inNftSend?: boolean; } @@ -138,75 +146,88 @@ export default function Brc20Tile(props: Brc20TileProps) { ); } + try { const regex = /”/g; const validBrcContentValue = brcContent.replace(regex, '"'); const content = JSON.parse(validBrcContentValue); - if (content?.op === 'mint') { - return ( - - - {t('MINT')} - {renderFTIcon(content?.tick)} - {text}} - /> - {isNftDashboard && ( - - - {t('ORDINAL')} - - )} - - - ); - } - if (content?.op === 'transfer') { - return ( - - - {t('TRANSFER')} - {renderFTIcon(content?.tick)} - {text}} - /> - {isNftDashboard && ( - - - {t('ORDINAL')} - - )} - - - ); - } - if (content?.op === 'deploy') { - return ( - - - {t('DEPLOY')} - {renderFTIcon(content?.tick)} - {isNftDashboard && ( - - - {t('ORDINAL')} - - )} - - - ); + + switch (content?.op) { + case 'mint': + return ( + + + {t('MINT')} + {renderFTIcon(content?.tick)} + {text}} + /> + {isNftDashboard && ( + + + {t('ORDINAL')} + + )} + + + ); + case 'transfer': + return ( + + + {t('TRANSFER')} + {renderFTIcon(content?.tick)} + {text}} + /> + {isNftDashboard && ( + + + {t('ORDINAL')} + + )} + + + ); + case 'deploy': + return ( + + + {t('DEPLOY')} + {renderFTIcon(content?.tick)} + {isNftDashboard && ( + + + {t('ORDINAL')} + + )} + + + ); + default: + return ( + + ordinal + + ); } - } catch (error) { + } catch (e) { return ( - - ordinal - + + {brcContent} + {isNftDashboard && ( + + + {t('ORDINAL')} + + )} + ); } }