disable refetch on window focus, fix hydration error (#933)

This commit is contained in:
Léo Galley
2024-08-26 09:06:23 -04:00
committed by GitHub
parent 4d24e5ee04
commit 6c1bb66b10
6 changed files with 23 additions and 4 deletions

View File

@@ -12,7 +12,7 @@ import classNames from 'classnames';
import { BaseName } from '@coinbase/onchainkit/identity';
import UsernameProfile from 'apps/web/src/components/Basenames/UsernameProfile';
import ErrorsProvider from 'apps/web/contexts/Errors';
import ProfilePromo from 'apps/web/src/components/Basenames/ProfilePromo';
import DynamicProfilePromo from 'apps/web/src/components/Basenames/ProfilePromo/dynamic';
export type UsernameProfileProps = {
params: { username: BaseName };
@@ -57,7 +57,7 @@ export default async function Username({ params }: UsernameProfileProps) {
<ProfileProviders username={username}>
<main className={usernameProfilePageClasses}>
<UsernameProfile />
<ProfilePromo />
<DynamicProfilePromo />
</main>
</ProfileProviders>
</ErrorsProvider>

View File

@@ -0,0 +1,11 @@
'use client';
import dynamic from 'next/dynamic';
const DynamicProfilePromo = dynamic(
async () => import('apps/web/src/components/Basenames/ProfilePromo'),
{
ssr: false,
},
);
export default DynamicProfilePromo;

View File

@@ -75,6 +75,7 @@ export default function UsernameProfileProvider({
universalResolverAddress: USERNAME_L2_RESOLVER_ADDRESSES[basenameChain.id],
query: {
retry: false,
refetchOnWindowFocus: false,
},
});
@@ -83,7 +84,10 @@ export default function UsernameProfileProvider({
data: profileOwnerAddress,
isFetching: profileOwnerAddressIsFetching,
refetch: profileOwnerRefetch,
} = useReadContract(buildBasenameOwnerContract(username));
} = useReadContract({
...buildBasenameOwnerContract(username),
query: { refetchOnWindowFocus: false },
});
// Owner Basename
const { data: profileOwnerUsername } = useBaseEnsName({

View File

@@ -73,6 +73,7 @@ export default function useReadBaseEnsTextRecords({
queryFn: getExistingTextRecords,
enabled: !!address && !!username,
retry: false,
refetchOnWindowFocus: false,
});
useEffect(() => {

View File

@@ -44,6 +44,9 @@ export default function useSetPrimaryBasename({ secondaryName }: UseSetPrimaryBa
const { data: secondaryAddress } = useEnsAddress({
name: secondaryName,
universalResolverAddress: USERNAME_L2_RESOLVER_ADDRESSES[secondaryBaseChain.id],
query: {
refetchOnWindowFocus: false,
},
});
const usernamesHaveSameOwner = secondaryAddress === address;

View File

@@ -408,7 +408,7 @@ export async function formatDefaultUsername(username: string | BaseName) {
return formatBaseEthDomain(username, base.id);
}
return username;
return username as BaseName;
}
export const getTokenIdFromBasename = (username: BaseName) => {