umami/src/app/(main)/websites/[websiteId]/realtime/RealtimeHome.tsx

34 lines
1,019 B
TypeScript
Raw Normal View History

2023-02-15 10:27:18 +00:00
import { useEffect } from 'react';
2023-09-29 12:29:22 +00:00
import { useRouter } from 'next/navigation';
2023-02-15 10:27:18 +00:00
import Page from 'components/layout/Page';
import PageHeader from 'components/layout/PageHeader';
2024-02-06 07:59:33 +00:00
import { useApi, useMessages } from 'components/hooks';
2023-02-15 10:27:18 +00:00
import EmptyPlaceholder from 'components/common/EmptyPlaceholder';
2023-04-21 15:00:42 +00:00
export function RealtimeHome() {
2023-03-22 21:05:55 +00:00
const { formatMessage, labels, messages } = useMessages();
2023-02-15 10:27:18 +00:00
const { get, useQuery } = useApi();
const router = useRouter();
2023-12-02 04:27:59 +00:00
const { data, isLoading, error } = useQuery({
queryKey: ['websites:me'],
queryFn: () => get('/me/websites'),
});
2023-02-15 10:27:18 +00:00
useEffect(() => {
if (data?.length) {
router.push(`realtime/${data[0].id}`);
}
2023-02-24 10:41:02 +00:00
}, [data, router]);
2023-02-15 10:27:18 +00:00
return (
2024-01-29 02:33:40 +00:00
<Page isLoading={isLoading || data?.length > 0} error={error}>
2023-02-15 10:27:18 +00:00
<PageHeader title={formatMessage(labels.realtime)} />
{data?.length === 0 && (
<EmptyPlaceholder message={formatMessage(messages.noWebsitesConfigured)} />
)}
2023-02-15 10:27:18 +00:00
</Page>
);
}
2023-04-21 15:00:42 +00:00
export default RealtimeHome;