import {usePageFilterDates} from 'sentry/components/checkInTimeline/hooks/useMonitorDates';
import LoadingError from 'sentry/components/loadingError';
import LoadingIndicator from 'sentry/components/loadingIndicator';
import {t} from 'sentry/locale';
import parseLinkHeader from 'sentry/utils/parseLinkHeader';
import {decodeScalar} from 'sentry/utils/queryString';
import {useLocation} from 'sentry/utils/useLocation';
import useOrganization from 'sentry/utils/useOrganization';
import {useParams} from 'sentry/utils/useParams';
import {UptimeChecksGrid} from 'sentry/views/alerts/rules/uptime/uptimeChecksGrid';
import {useUptimeChecks} from 'sentry/views/insights/uptime/utils/useUptimeChecks';
import {EventListTable} from 'sentry/views/issueDetails/streamline/eventListTable';
import {useUptimeIssueAlertId} from 'sentry/views/issueDetails/streamline/issueUptimeCheckTimeline';
import {useGroup} from 'sentry/views/issueDetails/useGroup';
import {useUptimeRule} from '../insights/uptime/utils/useUptimeRule';
export default function GroupUptimeChecks() {
const organization = useOrganization();
const {groupId} = useParams<{groupId: string}>();
const location = useLocation();
const {since, until} = usePageFilterDates();
const uptimeAlertId = useUptimeIssueAlertId({groupId});
const {
data: group,
isPending: isGroupPending,
isError: isGroupError,
refetch: refetchGroup,
} = useGroup({groupId});
const canFetchUptimeChecks =
Boolean(organization.slug) && Boolean(group?.project.slug) && Boolean(uptimeAlertId);
const {data: uptimeRule} = useUptimeRule(
{
projectSlug: group?.project.slug ?? '',
uptimeRuleId: uptimeAlertId ?? '',
},
{enabled: canFetchUptimeChecks}
);
const {data: uptimeChecks, getResponseHeader} = useUptimeChecks(
{
orgSlug: organization.slug,
projectSlug: group?.project.slug ?? '',
uptimeAlertId: uptimeAlertId ?? '',
cursor: decodeScalar(location.query.cursor),
limit: 50,
start: since.toISOString(),
end: until.toISOString(),
},
{enabled: canFetchUptimeChecks}
);
if (isGroupError) {
return ;
}
if (isGroupPending || uptimeChecks === undefined || uptimeRule === undefined) {
return ;
}
const links = parseLinkHeader(getResponseHeader?.('Link') ?? '');
const previousDisabled = links?.previous?.results === false;
const nextDisabled = links?.next?.results === false;
const pageCount = uptimeChecks.length;
return (
);
}