Skip to content

Commit 5187ed1

Browse files
feat(frontend): nft token details page (#1363)
1 parent 4166d0b commit 5187ed1

File tree

20 files changed

+1427
-949
lines changed

20 files changed

+1427
-949
lines changed

apps/api/src/services/v3/search/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ const getFts = async (keyword: string) => {
3636

3737
return dbEvents.manyOrNone<SearchFT>(sql.fts, {
3838
contract: query,
39-
hex: /^0x/.test(query) ? query : null,
39+
hex: query.startsWith('0x') ? query : null,
4040
});
4141
};
4242

apps/backend/src/services/contracts/tasks.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ const fetchStakingPoolInfo = async () => {
276276

277277
if (mappings.valueMap.size > 0) {
278278
const mappingsnew = {
279-
valueMap: new Map([...mappings.valueMap]),
279+
valueMap: new Map(mappings.valueMap),
280280
};
281281

282282
await dbBase('validator_data').update(
@@ -364,7 +364,7 @@ const fetchPoolInfo = async () => {
364364

365365
if (mappings.valueMap.size > 0) {
366366
const mappingsnew = {
367-
valueMap: new Map([...mappings.valueMap]),
367+
valueMap: new Map(mappings.valueMap),
368368
};
369369
await dbBase('validator_data').update(
370370
'staking_pool_infos',

apps/frontend/src/app/[lang]/nft-tokens/[cid]/holders/page.tsx renamed to apps/frontend/src/app/[lang]/nft-tokens/[cid]/(contract)/holders/page.tsx

File renamed without changes.

apps/frontend/src/app/[lang]/nft-tokens/[cid]/layout.tsx renamed to apps/frontend/src/app/[lang]/nft-tokens/[cid]/(contract)/layout.tsx

File renamed without changes.

apps/frontend/src/app/[lang]/nft-tokens/[cid]/page.tsx renamed to apps/frontend/src/app/[lang]/nft-tokens/[cid]/(contract)/page.tsx

File renamed without changes.

apps/frontend/src/app/[lang]/nft-tokens/[cid]/tokens/page.tsx renamed to apps/frontend/src/app/[lang]/nft-tokens/[cid]/(contract)/tokens/page.tsx

File renamed without changes.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import { ErrorSuspense } from '@/components/error-suspense';
2+
import { NftHeader } from '@/components/nft-tokens/token/header';
3+
import { NftOverview } from '@/components/nft-tokens/token/token/overview';
4+
import { NftTransfers } from '@/components/nft-tokens/token/token/transfers';
5+
import {
6+
fetchNFTContract,
7+
fetchNFTToken,
8+
fetchNFTTokenTxnCount,
9+
fetchNFTTokenTxns,
10+
} from '@/data/nft-tokens/contract';
11+
12+
type Props = PageProps<'/[lang]/nft-tokens/[cid]/tokens/[tid]'>;
13+
14+
const TokenDetailPage = async ({ params, searchParams }: Props) => {
15+
const [{ cid, tid }, filters] = await Promise.all([params, searchParams]);
16+
const tokenPromise = fetchNFTToken(cid, tid);
17+
const contractPromise = fetchNFTContract(cid);
18+
const txnsPromise = fetchNFTTokenTxns(cid, tid, filters);
19+
const txnCountPromise = fetchNFTTokenTxnCount(cid, tid, filters);
20+
21+
return (
22+
<>
23+
<NftHeader
24+
cid={cid}
25+
contractPromise={contractPromise}
26+
tokenPromise={tokenPromise}
27+
/>
28+
<ErrorSuspense fallback={<NftOverview cid={cid} loading />}>
29+
<NftOverview
30+
cid={cid}
31+
contractPromise={contractPromise}
32+
tokenPromise={tokenPromise}
33+
/>
34+
</ErrorSuspense>
35+
<ErrorSuspense fallback={<NftTransfers loading />}>
36+
<NftTransfers
37+
txnCountPromise={txnCountPromise}
38+
txnsPromise={txnsPromise}
39+
/>
40+
</ErrorSuspense>
41+
</>
42+
);
43+
};
44+
45+
export default TokenDetailPage;

0 commit comments

Comments
 (0)