Skip to content

Commit 9f0be35

Browse files
add geo-block handling
1 parent 272fe3d commit 9f0be35

File tree

4 files changed

+41
-22
lines changed

4 files changed

+41
-22
lines changed

src/app/components/Delegations/Delegation.tsx

+7-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { FaBitcoin } from "react-icons/fa";
44
import { IoIosWarning } from "react-icons/io";
55
import { Tooltip } from "react-tooltip";
66

7+
import { useHealthCheck } from "@/app/hooks/useHealthCheck";
78
import { DelegationState, StakingTx } from "@/app/types/delegations";
89
import { GlobalParamsVersion } from "@/app/types/globalParams";
910
import { getNetworkConfig } from "@/config/network.config";
@@ -43,6 +44,7 @@ export const Delegation: React.FC<DelegationProps> = ({
4344
}) => {
4445
const { startTimestamp } = stakingTx;
4546
const [currentTime, setCurrentTime] = useState(Date.now());
47+
const { isApiNormal, isGeoBlocked } = useHealthCheck();
4648

4749
useEffect(() => {
4850
const timerId = setInterval(() => {
@@ -162,9 +164,11 @@ export const Delegation: React.FC<DelegationProps> = ({
162164
<Tooltip id={`tooltip-${stakingTxHash}`} className="tooltip-wrap" />
163165
</div>
164166
</div>
165-
<div className="relative flex justify-end lg:justify-center order-5">
166-
<DelegationPoints stakingTxHash={stakingTxHash} />
167-
</div>
167+
{!isApiNormal && !isGeoBlocked && (
168+
<div className="relative flex justify-end lg:justify-center order-5">
169+
<DelegationPoints stakingTxHash={stakingTxHash} />
170+
</div>
171+
)}
168172
<div className="order-6">{generateActionButton()}</div>
169173
</div>
170174
</div>

src/app/components/Points/DelegationPoints.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export const DelegationPoints: React.FC<DelegationPointsProps> = ({
1111
stakingTxHash,
1212
}) => {
1313
const { delegationPoints, isLoading } = useDelegationsPoints();
14-
const isMobile = useMediaQuery("(max-width:1023px)");
14+
const isMobile = useMediaQuery("(max-width:1000px)");
1515

1616
const points = delegationPoints.get(stakingTxHash);
1717

src/app/components/Summary/Summary.tsx

+26-17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { Tooltip } from "react-tooltip";
55

66
import { useGlobalParams } from "@/app/context/api/GlobalParamsProvider";
77
import { useBtcHeight } from "@/app/context/mempool/BtcHeightProvider";
8+
import { useHealthCheck } from "@/app/hooks/useHealthCheck";
89
import { getNetworkConfig } from "@/config/network.config";
910
import { satoshiToBtc } from "@/utils/btcConversions";
1011
import {
@@ -36,6 +37,7 @@ export const Summary: React.FC<SummaryProps> = ({
3637

3738
const btcHeight = useBtcHeight();
3839
const globalParams = useGlobalParams();
40+
const { isApiNormal, isGeoBlocked } = useHealthCheck();
3941

4042
useMemo(() => {
4143
if (!btcHeight || !globalParams.data) {
@@ -76,23 +78,30 @@ export const Summary: React.FC<SummaryProps> = ({
7678
</p>
7779
</div>
7880
</div>
79-
<div className="divider xl:divider-horizontal xl:mx-4 my-0" />
80-
<div className="flex flex-1 flex-col gap-2 text-sm xl:items-center">
81-
<div className="flex items-center gap-1">
82-
<p className="dark:text-neutral-content">Total points</p>
83-
<span
84-
className="cursor-pointer text-xs"
85-
data-tooltip-id={"tooltip-total-points"}
86-
data-tooltip-content={`The points measure your staking activities based on your BTC public key. Please check FAQ for further info.`}
87-
>
88-
<AiOutlineInfoCircle />
89-
</span>
90-
<Tooltip id={"tooltip-total-points"} className="tooltip-wrap" />
91-
</div>
92-
<div className="flex items-center gap-1">
93-
<StakerPoints publicKeyNoCoord={publicKeyNoCoord} />
94-
</div>
95-
</div>
81+
{isApiNormal && !isGeoBlocked && (
82+
<>
83+
<div className="divider xl:divider-horizontal xl:mx-4 my-0" />
84+
<div className="flex flex-1 flex-col gap-2 text-sm xl:items-center">
85+
<div className="flex items-center gap-1">
86+
<p className="dark:text-neutral-content">Total points</p>
87+
<span
88+
className="cursor-pointer text-xs"
89+
data-tooltip-id={"tooltip-total-points"}
90+
data-tooltip-content={`The points measure your staking activities based on your BTC public key. Please check FAQ for further info.`}
91+
>
92+
<AiOutlineInfoCircle />
93+
</span>
94+
<Tooltip
95+
id={"tooltip-total-points"}
96+
className="tooltip-wrap"
97+
/>
98+
</div>
99+
<div className="flex items-center gap-1">
100+
<StakerPoints publicKeyNoCoord={publicKeyNoCoord} />
101+
</div>
102+
</div>
103+
</>
104+
)}
96105
<div className="divider xl:divider-horizontal xl:mx-4 my-0" />
97106
<div className="flex flex-1 flex-col gap-1 text-sm xl:items-center">
98107
<div className="flex items-center gap-1">

src/app/context/api/DelegationsPointsProvider.tsx

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
getDelegationPointsByStakingTxHashHexes,
66
PaginatedDelegationsPoints,
77
} from "@/app/api/getDelegationPoints";
8+
import { useHealthCheck } from "@/app/hooks/useHealthCheck";
89
import { Delegation } from "@/app/types/delegations";
910

1011
interface PointsContextType {
@@ -40,6 +41,7 @@ export const DelegationsPointsProvider: React.FC<
4041
const [delegationPoints, setDelegationPoints] = useState<Map<string, number>>(
4142
new Map(),
4243
);
44+
const { isApiNormal, isGeoBlocked } = useHealthCheck();
4345

4446
const fetchAllPoints = async () => {
4547
let allPoints: PaginatedDelegationsPoints["data"] = [];
@@ -64,7 +66,11 @@ export const DelegationsPointsProvider: React.FC<
6466
const { data, isLoading, error } = useQuery({
6567
queryKey: ["delegationPoints", publicKeyNoCoord, delegationsAPI],
6668
queryFn: fetchAllPoints,
67-
enabled: isWalletConnected && delegationsAPI.length > 0,
69+
enabled:
70+
isWalletConnected &&
71+
delegationsAPI.length > 0 &&
72+
isApiNormal &&
73+
!isGeoBlocked,
6874
refetchInterval: 60000, // Refetch every 60 seconds
6975
refetchOnWindowFocus: false,
7076
});

0 commit comments

Comments
 (0)