Skip to content

Commit 1d3969e

Browse files
chore(web): abstract-sortition-module-hooks-and-hide-in-university
1 parent fd8766e commit 1d3969e

File tree

9 files changed

+82
-24
lines changed

9 files changed

+82
-24
lines changed

web/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ dist
2222
.env.development.local
2323
.env.test.local
2424
.env.production.local
25+
.env.devnet-university
2526

2627
# generated code
2728
src/hooks/contracts/generated.ts

web/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"build-local": "scripts/runEnv.sh local 'yarn generate && vite build'",
3636
"build-devnet": "scripts/runEnv.sh devnet 'yarn generate && vite build'",
3737
"build-devnet-neo": "scripts/runEnv.sh devnet-neo 'yarn generate && vite build'",
38+
"build-devnet-university": "scripts/runEnv.sh devnet-university 'yarn generate && vite build'",
3839
"build-testnet": "scripts/runEnv.sh testnet 'yarn generate && vite build'",
3940
"build-mainnet-neo": "scripts/runEnv.sh mainnet-neo 'yarn generate && vite build'",
4041
"build-netlify": "scripts/generateBuildInfo.sh && yarn generate && vite build",

web/src/components/Phase.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React from "react";
22
import styled from "styled-components";
33

4-
import { useSortitionModulePhase } from "hooks/useSortitionModulePhase";
4+
import { useSortitionModulePhase } from "hooks/useSortitionModule";
55

66
import { isUndefined } from "src/utils";
77

web/src/hooks/useSortitionModule.ts

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { REFETCH_INTERVAL } from "consts/index";
2+
3+
import { useReadSortitionModule } from "hooks/contracts/generated";
4+
5+
export const useSortitionModulePhase = () => {
6+
// eslint-disable-next-line
7+
// @ts-ignore
8+
return useReadSortitionModule({ functionName: "phase", query: { refetchInterval: REFETCH_INTERVAL } });
9+
};
10+
11+
export const useReadSortitionModuleDelayedStakeReadIndex = () => {
12+
return useReadSortitionModule({
13+
// eslint-disable-next-line
14+
// @ts-ignore
15+
functionName: "delayedStakeReadIndex",
16+
query: { refetchInterval: REFETCH_INTERVAL },
17+
});
18+
};
19+
20+
export const useReadSortitionModuleDelayedStakeWriteIndex = () => {
21+
return useReadSortitionModule({
22+
// eslint-disable-next-line
23+
// @ts-ignore
24+
functionName: "delayedStakeWriteIndex",
25+
query: { refetchInterval: REFETCH_INTERVAL },
26+
});
27+
};
28+
29+
export const useReadSortitionModuleLastPhaseChange = () => {
30+
return useReadSortitionModule({
31+
// eslint-disable-next-line
32+
// @ts-ignore
33+
functionName: "lastPhaseChange",
34+
query: { refetchInterval: REFETCH_INTERVAL },
35+
});
36+
};
37+
38+
export const useReadSortitionModuleMaxDrawingTime = () => {
39+
return useReadSortitionModule({
40+
// eslint-disable-next-line
41+
// @ts-ignore
42+
functionName: "maxDrawingTime",
43+
query: { refetchInterval: REFETCH_INTERVAL },
44+
});
45+
};
46+
47+
export const useReadSortitionModuleMinStakingTime = () => {
48+
return useReadSortitionModule({
49+
// eslint-disable-next-line
50+
// @ts-ignore
51+
functionName: "minStakingTime",
52+
query: { refetchInterval: REFETCH_INTERVAL },
53+
});
54+
};

web/src/hooks/useSortitionModulePhase.ts

-9
This file was deleted.

web/src/pages/Cases/CaseDetails/MaintenanceButtons/DrawButton.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { usePublicClient } from "wagmi";
66
import { Button } from "@kleros/ui-components-library";
77

88
import { useSimulateKlerosCoreDraw, useWriteKlerosCoreDraw } from "hooks/contracts/generated";
9-
import { useSortitionModulePhase } from "hooks/useSortitionModulePhase";
9+
import { useSortitionModulePhase } from "hooks/useSortitionModule";
1010
import { wrapWithToast } from "utils/wrapWithToast";
1111

1212
import useDisputeMaintenanceQuery from "queries/useDisputeMaintenanceQuery";

web/src/pages/Courts/StakeMaintenanceButton/ExecuteDelayedStakeButton.tsx

+10-6
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,12 @@ import { usePublicClient } from "wagmi";
55

66
import { Button } from "@kleros/ui-components-library";
77

8+
import { useSimulateSortitionModule, useWriteSortitionModule } from "hooks/contracts/generated";
89
import {
910
useReadSortitionModuleDelayedStakeReadIndex,
1011
useReadSortitionModuleDelayedStakeWriteIndex,
11-
useSimulateSortitionModuleExecuteDelayedStakes,
12-
useWriteSortitionModuleExecuteDelayedStakes,
13-
} from "hooks/contracts/generated";
14-
import { useSortitionModulePhase } from "hooks/useSortitionModulePhase";
12+
useSortitionModulePhase,
13+
} from "hooks/useSortitionModule";
1514
import { wrapWithToast } from "utils/wrapWithToast";
1615

1716
import { isUndefined } from "src/utils";
@@ -42,14 +41,19 @@ const ExecuteDelayedStakeButton: React.FC<IExecuteStakeDelayedButton> = ({ setIs
4241
data: executeDelayedStakeConfig,
4342
isLoading: isLoadingConfig,
4443
isError,
45-
} = useSimulateSortitionModuleExecuteDelayedStakes({
44+
} = useSimulateSortitionModule({
4645
query: {
4746
enabled: canExecute,
4847
},
48+
// eslint-disable-next-line
49+
// @ts-ignore
50+
functionName: "executeDelayedStakes",
51+
// eslint-disable-next-line
52+
// @ts-ignore
4953
args: [1n + (delayedStakeWriteIndex ?? 0n) - (delayedStakeReadIndex ?? 0n)],
5054
});
5155

52-
const { writeContractAsync: executeDelayedStake } = useWriteSortitionModuleExecuteDelayedStakes();
56+
const { writeContractAsync: executeDelayedStake } = useWriteSortitionModule();
5357

5458
const isLoading = useMemo(() => isLoadingConfig || isSending, [isLoadingConfig, isSending]);
5559
const isDisabled = useMemo(() => isError || isLoading || !canExecute, [isError, isLoading, canExecute]);

web/src/pages/Courts/StakeMaintenanceButton/PassPhaseButton.tsx

+11-6
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ import { Button } from "@kleros/ui-components-library";
77

88
import {
99
useReadSortitionModuleDisputesWithoutJurors,
10+
useSimulateSortitionModule,
11+
useWriteSortitionModule,
12+
} from "hooks/contracts/generated";
13+
import {
1014
useReadSortitionModuleLastPhaseChange,
1115
useReadSortitionModuleMaxDrawingTime,
1216
useReadSortitionModuleMinStakingTime,
13-
useSimulateSortitionModulePassPhase,
14-
useWriteSortitionModulePassPhase,
15-
} from "hooks/contracts/generated";
16-
import { useSortitionModulePhase } from "hooks/useSortitionModulePhase";
17+
useSortitionModulePhase,
18+
} from "hooks/useSortitionModule";
1719
import { wrapWithToast } from "utils/wrapWithToast";
1820

1921
import { isUndefined } from "src/utils";
@@ -62,13 +64,16 @@ const PassPhaseButton: React.FC<IPassPhaseButton> = ({ setIsOpen }) => {
6264
data: passPhaseConfig,
6365
isLoading: isLoadingConfig,
6466
isError,
65-
} = useSimulateSortitionModulePassPhase({
67+
} = useSimulateSortitionModule({
6668
query: {
6769
enabled: canChangePhase,
6870
},
71+
// eslint-disable-next-line
72+
// @ts-ignore
73+
functionName: "passPhase",
6974
});
7075

71-
const { writeContractAsync: passPhase } = useWriteSortitionModulePassPhase();
76+
const { writeContractAsync: passPhase } = useWriteSortitionModule();
7277

7378
const isLoading = useMemo(() => isLoadingConfig || isSending, [isLoadingConfig, isSending]);
7479
const isDisabled = useMemo(() => isError || isLoading || !canChangePhase, [isError, isLoading, canChangePhase]);

web/src/pages/Courts/TopSearch.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { responsiveSize } from "styles/responsiveSize";
1414
import { StyledSkeleton } from "components/StyledSkeleton";
1515

1616
import StakeMaintenanceButtons from "./StakeMaintenanceButton";
17+
import { isKlerosUniversity } from "src/consts";
1718

1819
const Container = styled.div`
1920
width: 100%;
@@ -33,6 +34,7 @@ const TopSearch: React.FC = () => {
3334
const { data } = useCourtTree();
3435
const navigate = useNavigate();
3536
const items = useMemo(() => !isUndefined(data) && [rootCourtToItems(data.court)], [data]);
37+
const isUniversity = isKlerosUniversity();
3638
return (
3739
<Container>
3840
{items ? (
@@ -44,7 +46,7 @@ const TopSearch: React.FC = () => {
4446
) : (
4547
<StyledSkeleton width={240} height={42} />
4648
)}
47-
<StakeMaintenanceButtons />
49+
{isUniversity ? null : <StakeMaintenanceButtons />}
4850
</Container>
4951
);
5052
};

0 commit comments

Comments
 (0)