sui-explorer-local
Version:
Local Sui Explorer
26 lines (22 loc) • 875 B
text/typescript
// Copyright (c) Mysten Labs, Inc.
// SPDX-License-Identifier: Apache-2.0
import { useSuiClient } from '@mysten/dapp-kit';
import { DynamicFieldPage } from '@mysten/sui.js/client';
import { normalizeSuiAddress } from '@mysten/sui.js/utils';
import { useInfiniteQuery } from '@tanstack/react-query';
const MAX_PAGE_SIZE = 10;
export function useGetDynamicFields(parentId: string, maxPageSize = MAX_PAGE_SIZE) {
const client = useSuiClient();
return useInfiniteQuery<DynamicFieldPage>({
queryKey: ['dynamic-fields', { maxPageSize, parentId }],
queryFn: ({ pageParam = null }) =>
client.getDynamicFields({
parentId: normalizeSuiAddress(parentId),
cursor: pageParam as string | null,
limit: maxPageSize,
}),
enabled: !!parentId,
initialPageParam: null,
getNextPageParam: ({ nextCursor, hasNextPage }) => (hasNextPage ? nextCursor : null),
});
}