mirror of
https://github.com/placeholder-soft/web.git
synced 2026-01-12 22:45:00 +08:00
disable refetch on window focus, fix hydration error (#933)
This commit is contained in:
@@ -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>
|
||||
|
||||
11
apps/web/src/components/Basenames/ProfilePromo/dynamic.tsx
Normal file
11
apps/web/src/components/Basenames/ProfilePromo/dynamic.tsx
Normal 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;
|
||||
@@ -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({
|
||||
|
||||
@@ -73,6 +73,7 @@ export default function useReadBaseEnsTextRecords({
|
||||
queryFn: getExistingTextRecords,
|
||||
enabled: !!address && !!username,
|
||||
retry: false,
|
||||
refetchOnWindowFocus: false,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
Reference in New Issue
Block a user