Skip to content

Commit

Permalink
feat(dashboard): check if page is served from a gateway and, if so, u…
Browse files Browse the repository at this point in the history
…se arns.gatewayDomain, otherwise use arns.app
  • Loading branch information
kunstmusik committed Feb 5, 2025
1 parent f751031 commit 717ae7c
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 1 deletion.
32 changes: 32 additions & 0 deletions src/hooks/useHostGatewayDomain.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import { useQuery } from '@tanstack/react-query';

/** Checks where page is served and uses /ar-io/info endpoint to check if it is a gateway.
*
* @returns domain name if it is a gateway, otherwise null
*/
const useHostGatewayDomain = () => {
const queryResults = useQuery({
queryKey: ['hostGatewayDomain'],
queryFn: async () => {
const hostGateway = window.location.hostname;
const parts = hostGateway.split('.');
const domain = parts.length > 1 ? parts.slice(1).join('.') : parts[0];

try {
const response = await fetch(`https://${domain}/ar-io/info`);
const data = await response.json();
if (data?.wallet) {
return domain;
} else {
return null;
}
} catch (error) {
return null;
}
},
staleTime: Infinity,
});

return queryResults;
};
export default useHostGatewayDomain;
7 changes: 6 additions & 1 deletion src/pages/Dashboard/ArNSStatsPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,13 @@ import Button from '@src/components/Button';
import Placeholder from '@src/components/Placeholder';
import Tooltip from '@src/components/Tooltip';
import useArNSStats from '@src/hooks/useArNSStats';
import useHostGatewayDomain from '@src/hooks/useHostGatewayDomain';
import { formatWithCommas } from '@src/utils';
import { InfoIcon } from 'lucide-react';

const ArNSStatsPanel = () => {
const { data: arnsStats } = useArNSStats();
const { data: hostGatewayDomain } = useHostGatewayDomain();

return (
<div className="flex min-w-[22rem] flex-col rounded-xl border border-grey-500 px-6 py-5">
Expand Down Expand Up @@ -40,7 +42,10 @@ const ArNSStatsPanel = () => {
text={'Open ArNS app'}
active={true}
onClick={() => {
window.open('https://arns.app', '_blank', 'noopener,noreferrer');
const arnsUrl = hostGatewayDomain
? `https://arns.${hostGatewayDomain}`
: 'https://arns.app';
window.open(arnsUrl, '_blank', 'noopener,noreferrer');
}}
/>
</div>
Expand Down

0 comments on commit 717ae7c

Please # to comment.