Skip to content

Commit 063f501

Browse files
committed
feat(web): better-refetching
1 parent 58a365f commit 063f501

File tree

8 files changed

+30
-41
lines changed

8 files changed

+30
-41
lines changed

web/src/components/ActionButton/Modal/ChallengeItemModal.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,15 +138,16 @@ const ChallengeItemModal: React.FC<IChallengeItemModal> = ({
138138
value: depositRequired,
139139
});
140140

141-
wrapWithToast(async () => await walletClient.writeContract(request), publicClient).then((res) => {
142-
console.log({ res });
143-
refetch();
144-
toggleModal();
145-
});
141+
wrapWithToast(async () => await walletClient.writeContract(request), publicClient)
142+
.then((res) => {
143+
console.log({ res });
144+
refetch();
145+
toggleModal();
146+
})
147+
.finally(() => setIsChallengingItem(false));
146148
}
147149
})
148-
.catch((err) => console.log(err))
149-
.finally(() => setIsChallengingItem(false));
150+
.catch((err) => console.log(err));
150151
}}
151152
/>
152153
</ReStyledModal>

web/src/components/ActionButton/Modal/RemoveModal.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,16 @@ const RemoveModal: React.FC<IRemoveModal> = ({ toggleModal, isItem, registryAddr
114114
value: depositRequired,
115115
});
116116

117-
wrapWithToast(async () => await walletClient.writeContract(request), publicClient).then((res) => {
118-
console.log({ res });
119-
refetch();
120-
toggleModal();
121-
});
117+
wrapWithToast(async () => await walletClient.writeContract(request), publicClient)
118+
.then((res) => {
119+
console.log({ res });
120+
refetch();
121+
toggleModal();
122+
})
123+
.finally(() => setIsRemovingItem(false));
122124
}
123125
})
124-
.catch((err) => console.log(err))
125-
.finally(() => setIsRemovingItem(false));
126+
.catch((err) => console.log(err));
126127
}}
127128
/>
128129
</ReStyledModal>

web/src/components/ActionButton/index.tsx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Button } from "@kleros/ui-components-library";
2-
import React, { useMemo } from "react";
2+
import React, { useCallback, useMemo } from "react";
33
import { Address } from "viem";
44
import { COURT_SITE } from "consts/index";
55
import { Status } from "consts/status";
@@ -10,6 +10,7 @@ import { useToggle } from "react-use";
1010
import Modal, { getModalButtonText } from "./Modal";
1111
import ExecuteButton from "./ExecuteButton";
1212
import { useCurateV2ChallengePeriodDuration } from "hooks/contracts/generated";
13+
import { useQueryClient } from "@tanstack/react-query";
1314

1415
const StyledKlerosIcon = styled(KlerosIcon)`
1516
path {
@@ -22,10 +23,11 @@ interface IActionButton {
2223
registryAddress: Address;
2324
itemId: string;
2425
isItem: boolean;
25-
refetch: () => void;
2626
}
2727

28-
const ActionButton: React.FC<IActionButton> = ({ status, registryAddress, itemId, isItem, refetch }) => {
28+
const ActionButton: React.FC<IActionButton> = ({ status, registryAddress, itemId, isItem }) => {
29+
const queryClient = useQueryClient();
30+
2931
const [isModalOpen, toggleModal] = useToggle(false);
3032

3133
const { data: requests, isLoading } = useItemRequests(`${itemId}@${registryAddress}`);
@@ -40,6 +42,11 @@ const ActionButton: React.FC<IActionButton> = ({ status, registryAddress, itemId
4042
return !latestRequest.resolved && Date.now() / 1000 - latestRequest.submissionTime > challengePeriodDuration;
4143
}, [latestRequest, challengePeriodDuration]);
4244

45+
const refetch = useCallback(() => {
46+
queryClient.invalidateQueries(["refetchOnBlock", `itemDetailsQuery${itemId}@${registryAddress}`]);
47+
queryClient.invalidateQueries(["refetchOnBlock", `registryDetailsQuery${registryAddress}`]);
48+
}, [itemId, registryAddress, queryClient]);
49+
4350
let ButtonComponent: JSX.Element | null = useMemo(() => {
4451
if (status === Status.Disputed)
4552
return (

web/src/components/InformationCards/ItemInformationCard/index.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ interface IItemInformationCard extends ItemDetails {
8282
className?: string;
8383
policyURI: string;
8484
registryAddress: Address;
85-
refetch: () => void;
8685
}
8786

8887
const ItemInformationCard: React.FC<IItemInformationCard> = ({
@@ -95,7 +94,6 @@ const ItemInformationCard: React.FC<IItemInformationCard> = ({
9594
props,
9695
registryAddress,
9796
latestRequestSubmissionTime,
98-
refetch = () => {},
9997
}) => {
10098
return (
10199
<>
@@ -124,7 +122,6 @@ const ItemInformationCard: React.FC<IItemInformationCard> = ({
124122
itemId: itemID,
125123
registryAddress,
126124
isItem: true,
127-
refetch,
128125
}}
129126
/>
130127
</BottomInfo>

web/src/components/InformationCards/RegistryInformationCard/index.tsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ interface IInformationCard
4848
itemId: string;
4949
parentRegistryAddress: string;
5050
className?: string;
51-
refetch: () => void;
5251
}
5352

5453
const RegistryInformationCard: React.FC<IInformationCard> = ({
@@ -64,7 +63,6 @@ const RegistryInformationCard: React.FC<IInformationCard> = ({
6463
itemId,
6564
parentRegistryAddress,
6665
latestRequestSubmissionTime,
67-
refetch = () => {},
6866
}) => (
6967
<StyledCard {...{ className }}>
7068
<TopInfo
@@ -90,7 +88,6 @@ const RegistryInformationCard: React.FC<IInformationCard> = ({
9088
registryAddress: parentRegistryAddress as `0x${string}`,
9189
itemId,
9290
isItem: false,
93-
refetch,
9491
}}
9592
/>
9693
</BottomInfo>

web/src/pages/AllLists/ItemDisplay/index.tsx

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,14 @@ import ItemInformationCard from "components/InformationCards/ItemInformationCard
88
const ItemDisplay: React.FC = () => {
99
const { itemId } = useParams();
1010
const [, listAddress] = itemId?.split("@");
11-
const { data: itemDetails, refetch: refetchItemDetails } = useItemDetailsQuery(itemId);
12-
const { data: registryDetails, refetch: refetchRegistryDetails } = useRegistryDetailsQuery(listAddress);
11+
const { data: itemDetails } = useItemDetailsQuery(itemId);
12+
const { data: registryDetails } = useRegistryDetailsQuery(listAddress);
1313

14-
const refetch = () => {
15-
refetchItemDetails();
16-
refetchRegistryDetails();
17-
};
1814
return (
1915
<div>
2016
<ItemInformationCard
2117
{...itemDetails?.item}
2218
policyURI={registryDetails?.registry.policyURI ?? ""}
23-
refetch={refetch}
2419
registryAddress={listAddress}
2520
/>
2621

web/src/pages/AllLists/RegistryDetails/index.tsx

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,8 @@ const RegistryDetails: React.FC = () => {
1515
const [listAddress, itemId] = id?.split("-");
1616
const [, registryAddress] = itemId.split("@");
1717

18-
const { data: itemDetails, refetch: refetchItemDetails } = useItemDetailsQuery(itemId?.toLowerCase());
19-
const { data: registryDetails, refetch: refetchRegistryDetails } = useRegistryDetailsQuery(
20-
listAddress?.toLowerCase()
21-
);
22-
23-
const refetch = () => {
24-
refetchItemDetails();
25-
refetchRegistryDetails();
26-
};
18+
const { data: itemDetails } = useItemDetailsQuery(itemId?.toLowerCase());
19+
const { data: registryDetails } = useRegistryDetailsQuery(listAddress?.toLowerCase());
2720

2821
const {
2922
title,
@@ -59,7 +52,6 @@ const RegistryDetails: React.FC = () => {
5952
status,
6053
disputed,
6154
itemId: registryAsitemId,
62-
refetch,
6355
registerer,
6456
latestRequestSubmissionTime,
6557
}}

web/src/pages/SubmitList/ListParameters/ListPreview/ListPageDisplay.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ const ListPageDisplay: React.FC = () => {
3232
parentRegistryAddress=""
3333
registerer={{ id: "" }}
3434
itemId=""
35-
refetch={() => {}}
3635
title={previewData.title}
3736
description={previewData.description}
3837
status={Status.Registered}

0 commit comments

Comments
 (0)