Skip to content

Commit

Permalink
feat: Add new rarity (#2211)
Browse files Browse the repository at this point in the history
* feat: Add new exotic rarity

* fix: Casting

* feat: Add new rarity badge component

* fix: Update UI and dapps
  • Loading branch information
LautaroPetaccio committed Apr 8, 2024
1 parent b20d17b commit d9f3434
Show file tree
Hide file tree
Showing 22 changed files with 71 additions and 222 deletions.
1 change: 1 addition & 0 deletions indexer/schema.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -249,6 +249,7 @@ enum WearableRarity @entity {
legendary
mythic
unique
exotic
}

enum WearableBodyShape @entity {
Expand Down
81 changes: 26 additions & 55 deletions webapp/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions webapp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"@0xsquid/squid-types": "^0.1.29",
"@covalenthq/client-sdk": "^0.6.4",
"@dcl/crypto": "^3.0.0",
"@dcl/schemas": "^11.1.0",
"@dcl/schemas": "^11.4.0",
"@dcl/single-sign-on-client": "^0.1.0",
"@dcl/ui-env": "^1.5.0",
"@ethersproject/providers": "^5.6.2",
Expand All @@ -20,11 +20,11 @@
"date-fns": "^2.23.0",
"dcl-catalyst-client": "^21.6.0",
"dcl-catalyst-commons": "^9.0.1",
"decentraland-connect": "^6.2.0",
"decentraland-connect": "^6.3.1",
"decentraland-crypto-fetch": "^1.0.3",
"decentraland-dapps": "^19.3.2",
"decentraland-dapps": "^19.5.2",
"decentraland-transactions": "^2.3.2",
"decentraland-ui": "^5.13.2",
"decentraland-ui": "^5.17.1",
"ethers": "^5.6.8",
"graphql": "^14.7.0",
"history": "^4.10.1",
Expand Down
8 changes: 2 additions & 6 deletions webapp/src/components/AssetCard/EmoteTags/EmoteTags.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
import classNames from 'classnames'
import { NFTCategory } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { T } from 'decentraland-dapps/dist/modules/translation/utils'
import { Popup } from 'decentraland-ui'
import soundSrc from '../../../images/emotes/sound.svg'
import { AssetType } from '../../../modules/asset/types'
import RarityBadge from '../../RarityBadge'
import { Props } from './EmoteTags.types'
import styles from './EmoteTags.module.css'

Expand All @@ -15,9 +13,7 @@ const EmoteTags = (props: Props) => {
return (
<div className={classNames([styles.EmoteTags, 'tags'])}>
<div className={styles.badges}>
{rarity ? (
<RarityBadge size="small" rarity={rarity} assetType={AssetType.NFT} category={NFTCategory.EMOTE} withTooltip={false} />
) : null}
{rarity ? <RarityBadge size="small" rarity={rarity} withTooltip={false} /> : null}
{loop !== undefined ? (
<Popup
position="top center"
Expand Down
5 changes: 2 additions & 3 deletions webapp/src/components/AssetCard/WearableTags/WearableTags.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import { NFTCategory } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { t } from 'decentraland-dapps/dist/modules/translation/utils'
import { AssetType } from '../../../modules/asset/types'
import { isCatalogItem, isNFT } from '../../../modules/asset/utils'
import { Section } from '../../../modules/vendor/decentraland'
import SmartBadge from '../../AssetPage/SmartBadge'
import GenderBadge from '../../GenderBadge/GenderBadge'
import RarityBadge from '../../RarityBadge'
import { Props } from './WearableTags.types'
import './WearableTags.css'

Expand All @@ -15,7 +14,7 @@ const WearableTags = (props: Props) => {

return (
<div className="WearableTags tags">
<RarityBadge size="small" rarity={rarity} assetType={AssetType.NFT} category={NFTCategory.EMOTE} withTooltip={false} />
<RarityBadge size="small" rarity={rarity} withTooltip={false} />
{!isCatalogItem(asset) && <div className={'icon ' + category} title={t(`wearable.category.${category}`)} />}
{!isCatalogItem(asset) && (
<GenderBadge bodyShapes={bodyShapes} assetType={AssetType.NFT} withText={false} section={Section.WEARABLES} />
Expand Down
6 changes: 3 additions & 3 deletions webapp/src/components/AssetPage/EmoteDetail/EmoteDetail.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import React, { useMemo, useState } from 'react'
import { EmotePlayMode, NFTCategory, OrderSortBy } from '@dcl/schemas'
import { EmotePlayMode, OrderSortBy } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { t } from 'decentraland-dapps/dist/modules/translation/utils'
import { AssetType } from '../../../modules/asset/types'
import { locations } from '../../../modules/routing/locations'
import { Section } from '../../../modules/vendor/decentraland'
import { AssetImage } from '../../AssetImage'
import CampaignBadge from '../../Campaign/CampaignBadge'
import RarityBadge from '../../RarityBadge'
import TableContainer from '../../Table/TableContainer'
import { BidsTable } from '../BidsTable'
import { BuyNFTBox } from '../BuyNFTBox'
Expand Down Expand Up @@ -90,7 +90,7 @@ const EmoteDetail = ({ nft }: Props) => {
<div>
<Title asset={nft} />
<div className={styles.badges}>
<RarityBadge rarity={emote.rarity} assetType={AssetType.NFT} category={NFTCategory.EMOTE} />
<RarityBadge rarity={emote.rarity} size="medium" withTooltip />
<IconBadge
icon={loop ? 'play-loop' : 'play-once'}
text={t(`emote.play_mode.${loop ? 'loop' : 'simple'}`)}
Expand Down
4 changes: 2 additions & 2 deletions webapp/src/components/AssetPage/ItemDetail/ItemDetail.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useMemo, useRef } from 'react'
import { useSelector } from 'react-redux'
import classNames from 'classnames'
import { BodyShape, EmotePlayMode, NFTCategory, Network } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { t } from 'decentraland-dapps/dist/modules/translation/utils'
import { getRequiredPermissions } from '../../../modules/asset/selectors'
import { AssetType } from '../../../modules/asset/types'
Expand All @@ -11,7 +12,6 @@ import { Section } from '../../../modules/vendor/decentraland'
import { AssetImage } from '../../AssetImage'
import CampaignBadge from '../../Campaign/CampaignBadge'
import GenderBadge from '../../GenderBadge'
import RarityBadge from '../../RarityBadge'
import { BestBuyingOption } from '../BestBuyingOption'
import CategoryBadge from '../CategoryBadge'
import Collection from '../Collection'
Expand Down Expand Up @@ -93,7 +93,7 @@ const ItemDetail = ({ item }: Props) => {
<div>
<Title asset={item} />
<div className={styles.badges}>
<RarityBadge rarity={item.rarity} assetType={AssetType.ITEM} category={NFTCategory.WEARABLE} size="small" />
<RarityBadge rarity={item.rarity} size="small" withTooltip />
{category && (
<CategoryBadge
category={item.data.emote ? item.data.emote.category : item.data.wearable!.category}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import React, { useState } from 'react'
import { NFTCategory, OrderSortBy } from '@dcl/schemas'
import { OrderSortBy } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { t } from 'decentraland-dapps/dist/modules/translation/utils'
import { AssetType } from '../../../modules/asset/types'
import { Section } from '../../../modules/vendor/decentraland'
import { AssetImage } from '../../AssetImage'
import CampaignBadge from '../../Campaign/CampaignBadge'
import GenderBadge from '../../GenderBadge'
import RarityBadge from '../../RarityBadge'
import TableContainer from '../../Table/TableContainer'
import { BidsTable } from '../BidsTable'
import { BuyNFTBox } from '../BuyNFTBox'
Expand Down Expand Up @@ -69,7 +69,7 @@ const WearableDetail = ({ nft }: Props) => {
<div className={styles.wearableBadgesContainer}>
<Title asset={nft} />
<div className={styles.badges}>
<RarityBadge rarity={wearable.rarity} assetType={AssetType.NFT} category={NFTCategory.WEARABLE} />
<RarityBadge rarity={wearable.rarity} withTooltip size="medium" />
<CategoryBadge category={wearable.category} assetType={AssetType.NFT} />
<GenderBadge bodyShapes={wearable.bodyShapes} assetType={AssetType.NFT} section={Section.WEARABLES} />
{wearable.isSmart ? <SmartBadge assetType={AssetType.NFT} /> : null}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import React, { useState } from 'react'
import { Link } from 'react-router-dom'
import { Item, NFTCategory } from '@dcl/schemas'
import { Item } from '@dcl/schemas'
import { RarityBadge } from 'decentraland-dapps/dist/containers/RarityBadge'
import { getAnalytics } from 'decentraland-dapps/dist/modules/analytics/utils'
import { t, T } from 'decentraland-dapps/dist/modules/translation/utils'
import { Loader, Mana, Mobile, NotMobile, Table } from 'decentraland-ui'
Expand All @@ -14,7 +15,6 @@ import { AssetImage } from '../../AssetImage'
import { AssetProvider } from '../../AssetProvider'
import { LinkedProfile } from '../../LinkedProfile'
import { ManaToFiat } from '../../ManaToFiat'
import RarityBadge from '../../RarityBadge'
import { Props } from './RankingItemRow.types'
import './RankingItemRow.css'

Expand Down Expand Up @@ -58,13 +58,7 @@ const RankingItemRow = ({ entity }: Props) => {
</span>
{item ? (
<div className="rankings-item-badge-container">
<RarityBadge
size="small"
rarity={item.rarity}
assetType={AssetType.NFT}
category={NFTCategory.WEARABLE}
withTooltip={false}
/>
<RarityBadge size="small" rarity={item.rarity} withTooltip={false} />
</div>
) : null}
</div>
Expand Down Expand Up @@ -151,11 +145,7 @@ const RankingItemRow = ({ entity }: Props) => {
: t(`emote.category.${item.data.emote!.category}`)
: null}
</Table.Cell>
<Table.Cell width={2}>
{item ? (
<RarityBadge size="small" rarity={item.rarity} assetType={AssetType.NFT} category={NFTCategory.WEARABLE} withTooltip={false} />
) : null}
</Table.Cell>
<Table.Cell width={2}>{item ? <RarityBadge size="small" rarity={item.rarity} withTooltip={false} /> : null}</Table.Cell>
<Table.Cell width={2}>{item ? entity.sales : null}</Table.Cell>
<Table.Cell>
{item ? (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { connect } from 'react-redux'
import { isLoadingType } from 'decentraland-dapps/dist/modules/loading/selectors'
import { fetchRankingsRequest, FETCH_RANKINGS_REQUEST } from '../../modules/analytics/actions'
import { getRankingsData, getLoading } from '../../modules/analytics/selectors'
import { getIsExoticRarityEnabled } from '../../modules/features/selectors'
import { RootState } from '../../modules/reducer'
import RankingsTable from './RankingsTable'
import { MapStateProps, MapDispatch, MapDispatchProps } from './RankingsTable.types'
Expand All @@ -10,6 +11,7 @@ const mapState = (state: RootState): MapStateProps => {
const data = getRankingsData(state)
return {
data,
isExoticRarityEnabled: getIsExoticRarityEnabled(state),
isLoading: isLoadingType(getLoading(state), FETCH_RANKINGS_REQUEST)
}
}
Expand Down

0 comments on commit d9f3434

Please sign in to comment.