diff --git a/package.json b/package.json index 30c8186f6..55b808931 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "dependencies": { "@ant-design/icons": "5.4.0", - "@ar.io/sdk": "^3.17.2-alpha.1", + "@ar.io/sdk": "^3.17.1", "@ar.io/wayfinder-core": "^1.0.4", "@ar.io/wayfinder-react": "^1.0.11", "@ardrive/turbo-sdk": "^1.23.1", diff --git a/src/components/data-display/tables/DomainsTable.tsx b/src/components/data-display/tables/DomainsTable.tsx index d250dbe3d..0af9bea7f 100644 --- a/src/components/data-display/tables/DomainsTable.tsx +++ b/src/components/data-display/tables/DomainsTable.tsx @@ -10,21 +10,17 @@ import ArweaveID, { ArweaveIdTypes, } from '@src/components/layout/ArweaveID/ArweaveID'; import UpgradeDomainModal from '@src/components/modals/ant-management/UpgradeDomainModal/UpgradeDomainModal'; -import { useLatestANTVersion } from '@src/hooks/useANTVersions'; import { usePrimaryName } from '@src/hooks/usePrimaryName'; import { ANTProcessData, - useArNSState, useGlobalState, useModalState, useTransactionState, useWalletState, } from '@src/state'; -import { dispatchANTUpdate } from '@src/state/actions/dispatchANTUpdate'; import { camelToReadable, decodeDomainToASCII, - doAntsRequireUpdate, encodeDomainToASCII, formatExpiryDate, formatForMaxCharCount, @@ -39,7 +35,7 @@ import { PERMANENT_DOMAIN_MESSAGE, } from '@src/utils/constants'; import { ANTStateError } from '@src/utils/errors'; -import { queryClient } from '@src/utils/network'; +import { useQueryClient } from '@tanstack/react-query'; import { ColumnDef, createColumnHelper } from '@tanstack/react-table'; import { capitalize } from 'lodash'; import { CircleCheck, Star } from 'lucide-react'; @@ -117,20 +113,17 @@ const DomainsTable = ({ filter?: string; setFilter: (filter: string) => void; }) => { + const queryClient = useQueryClient(); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const [{ walletAddress }] = useWalletState(); - const [{ arioProcessId, aoNetwork, hyperbeamUrl }] = useGlobalState(); - const [{ loading: loadingArnsState }, dispatchArNSState] = useArNSState(); - const { data: antVersion } = useLatestANTVersion(); - const antModuleId = antVersion?.moduleId ?? null; + const [{ arioProcessId }] = useGlobalState(); const [, dispatchModalState] = useModalState(); const [, dispatchTransactionState] = useTransactionState(); const { data: primaryNameData } = usePrimaryName(); const [tableData, setTableData] = useState>([]); const [filteredTableData, setFilteredTableData] = useState([]); const [sortBy, setSortBy] = useState(searchParams.get('sortBy') ?? 'name'); - const [showUpgradeDomainModal, setShowUpgradeDomainModal] = useState(false); const [domainToUpgrade, setDomainToUpgrade] = useState( @@ -147,22 +140,6 @@ const DomainsTable = ({ Object.entries(domainData.names).map(([domain, record]) => { const ant = domainData.ants[record.processId]; - const ioCompatible = - ant?.errors?.find((e) => e instanceof ANTStateError) ?? - (walletAddress && ant?.state && record?.processId - ? !doAntsRequireUpdate({ - ants: { - [record.processId]: { - state: ant.state, - version: ant.version, - processMeta: ant.processMeta, - }, - }, - userAddress: walletAddress.toString(), - currentModuleId: antModuleId, - }) - : false); - const data: TableData = { openRow: <>, name: domain, @@ -174,7 +151,7 @@ const DomainsTable = ({ ) ?? 'N/A', processId: record.processId, targetId: ant?.state?.Records?.['@']?.transactionId ?? 'N/A', - ioCompatible, + ioCompatible: ant?.isLatestVersion, undernames: { used: Object.keys(ant?.state?.Records ?? {}).filter( @@ -195,13 +172,7 @@ const DomainsTable = ({ setTableData(newTableData); } - }, [ - domainData, - loading, - loadingArnsState, - primaryNameData, - dispatchArNSState, - ]); + }, [domainData, loading, primaryNameData]); useEffect(() => { const filtered = filterTableData(filter, tableData); @@ -332,10 +303,7 @@ const DomainsTable = ({ ); } case 'ioCompatible': { - if ( - loadingArnsState && - !domainData.ants[row.original.processId]?.state - ) + if (loading && !domainData.ants[row.original.processId]?.state) return ( Loading... @@ -346,14 +314,9 @@ const DomainsTable = ({ ); } - return rowValue === false && row.original.role !== 'controller' ? ( + return rowValue === false && row.original.role === 'owner' ? ( ({ )} ))} - {' '} + {row.getIsExpanded() && renderSubComponent && ( (''); + const { + data: antData = {}, + isLoading: isLoadingAnts, + isRefetching: isRefetchingAnts, + refetch: refetchAnts, + } = useAntsForWallet(); + const { + data: domains = {}, + isLoading: isLoadingDomains, + isRefetching: isRefetchingDomains, + refetch: refetchDomains, + } = useArNSRecordsForWallet(); + const { ants: antsRequireUpdate, isLoading: isLoadingAntsRequireUpdate } = + useAntsRequireUpdate(); + const [isLoading, setIsLoading] = useState(isLoadingDomains || isLoadingAnts); + + useEffect(() => { + setIsLoading( + isLoadingDomains || isLoadingAnts || isLoadingAntsRequireUpdate, + ); + }, [ + isLoadingDomains, + isLoadingAnts, + isRefetchingDomains, + isRefetchingAnts, + isLoadingAntsRequireUpdate, + ]); return (
@@ -69,15 +88,11 @@ function Manage() { />
- {!loadingArnsState && + {!isLoading && walletAddress && - doAntsRequireUpdate({ - ants, - userAddress: walletAddress.toString(), - currentModuleId: antModuleId, - }) && ( + antsRequireUpdate.length > 0 && ( @@ -95,20 +110,17 @@ function Manage() { )}