@@ -7,12 +7,14 @@ import { logger } from 'utilities/src/logger/logger'
77import { TokenLaunchedBannerInner } from '~/features/Toucan/Auction/Banners/TokenLaunched/TokenLaunchedBannerInner'
88import { TokenLaunchedBannerSkeleton } from '~/features/Toucan/Auction/Banners/TokenLaunched/TokenLaunchedBannerSkeleton'
99import { TokenLaunchFailedBannerContent } from '~/features/Toucan/Auction/Banners/TokenLaunched/TokenLaunchFailedBannerContent'
10+ import { TokenRestrictedBannerContent } from '~/features/Toucan/Auction/Banners/TokenLaunched/TokenRestrictedBannerContent'
1011import { useTokenLaunchedBannerColorData } from '~/features/Toucan/Auction/Banners/TokenLaunched/useTokenLaunchedBannerColorData'
1112import { useTokenLaunchedBannerPriceData } from '~/features/Toucan/Auction/Banners/TokenLaunched/useTokenLaunchedBannerPriceData'
1213import { fromQ96ToDecimalWithTokenDecimals } from '~/features/Toucan/Auction/BidDistributionChart/utils/q96'
1314import { useBidTokenInfo } from '~/features/Toucan/Auction/hooks/useBidTokenInfo'
1415import { useAuctionStore } from '~/features/Toucan/Auction/store/useAuctionStore'
1516import { getClearingPrice } from '~/features/Toucan/Auction/utils/clearingPrice'
17+ import { getAuctionMetadata } from '~/features/Toucan/Config/config'
1618
1719interface TokenLaunchedBannerProps {
1820 tokenName : string
@@ -47,6 +49,10 @@ export function TokenLaunchedBanner({
4749 const chainId = auctionDetails ?. chainId
4850 const auctionAddress = auctionDetails ?. address
4951
52+ const tradingRestrictedUntilTge = Boolean (
53+ tokenAddress && chainId && getAuctionMetadata ( { chainId, tokenAddress } ) ?. tradingRestrictedUntilTge ,
54+ )
55+
5056 const { bannerGradient, accentColor } = useTokenLaunchedBannerColorData ( {
5157 tokenColor : isGraduated ? tokenColor : colors . statusCritical . val ,
5258 tokenColorLoading,
@@ -61,18 +67,18 @@ export function TokenLaunchedBanner({
6167 } = useTokenLaunchedBannerPriceData ( {
6268 tokenAddress,
6369 chainId,
64- skip : ! isGraduated || ! tokenAddress || ! chainId ,
70+ skip : ! isGraduated || tradingRestrictedUntilTge || ! tokenAddress || ! chainId ,
6571 } )
6672
6773 // Fetch bid token info (needed for clearing price fallback conversion to USD)
6874 const { bidTokenInfo, loading : bidTokenLoading } = useBidTokenInfo ( {
6975 bidTokenAddress,
7076 chainId,
71- skip : ! isGraduated || ! bidTokenAddress || ! chainId ,
77+ skip : ! isGraduated || tradingRestrictedUntilTge || ! bidTokenAddress || ! chainId ,
7278 } )
7379
7480 // Fetch clearing price history for chart fallback (only when GraphQL price fails)
75- const needsFallback = isGraduated && ! priceLoading && ( ! priceData || priceError )
81+ const needsFallback = isGraduated && ! tradingRestrictedUntilTge && ! priceLoading && ( ! priceData || priceError )
7682 const { data : clearingPriceResponse , isLoading : clearingHistoryLoading } = useQuery (
7783 auctionQueries . getClearingPriceHistory ( {
7884 params : new GetClearingPriceHistoryRequest ( {
@@ -142,6 +148,10 @@ export function TokenLaunchedBanner({
142148 return < TokenLaunchFailedBannerContent tokenName = { tokenName } bannerGradient = { bannerGradient } />
143149 }
144150
151+ if ( tradingRestrictedUntilTge ) {
152+ return < TokenRestrictedBannerContent bannerGradient = { bannerGradient } accentColor = { accentColor } />
153+ }
154+
145155 // Show loading skeleton while data is being fetched
146156 const isLoading = priceLoading || bidTokenLoading || ( needsFallback && clearingHistoryLoading )
147157 if ( isLoading ) {
0 commit comments