mirror of
https://github.com/lux-tel/websites.git
synced 2026-10-30 20:31:36 +00:00
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
'use client';
|
|
|
|
import { OpenNodeCard } from '@/components/OpenNodeCard';
|
|
import { URL } from '@/lib/constants';
|
|
import { externalLink } from '@/lib/locale-defaults';
|
|
import { ModuleGridInfoContent } from '@session/ui/components/ModuleGrid';
|
|
import { useTranslations } from 'next-intl';
|
|
import { useStakingBackendSuspenseQuery } from '@/lib/sent-staking-backend-client';
|
|
import { getOpenNodes } from '@/lib/queries/getOpenNodes';
|
|
import { NodesListSkeleton } from '@/components/NodesListModule';
|
|
|
|
export default function OpenNodes() {
|
|
const { data, isLoading } = useStakingBackendSuspenseQuery(getOpenNodes);
|
|
|
|
return isLoading ? (
|
|
<NodesListSkeleton />
|
|
) : data?.nodes.length ? (
|
|
data.nodes.map((node) => <OpenNodeCard key={node.service_node_pubkey} node={node} />)
|
|
) : (
|
|
<NoNodes />
|
|
);
|
|
}
|
|
|
|
function NoNodes() {
|
|
const dictionary = useTranslations('modules.openNodes');
|
|
return (
|
|
<ModuleGridInfoContent>
|
|
<p>{dictionary('noNodesP1')}</p>
|
|
<p>{dictionary.rich('noNodesP2', { link: externalLink(URL.SESSION_NODE_DOCS) })}</p>
|
|
</ModuleGridInfoContent>
|
|
);
|
|
}
|