12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- import {useMemo} from 'react';
- import {IssueCategory} from 'sentry/types';
- import useReplayCount from 'sentry/utils/replayCount/useReplayCount';
- import useOrganization from 'sentry/utils/useOrganization';
- interface Props {
- bufferLimit?: number;
- statsPeriod?: string;
- }
- /**
- * Query results for whether an Issue/Group has replays associated.
- */
- export default function useReplayCountForIssues({
- bufferLimit = 25,
- statsPeriod = '14d',
- }: Props = {}) {
- const organization = useOrganization();
- const {
- getOne: getOneError,
- getMany: getManyError,
- hasOne: hasOneError,
- hasMany: hasManyError,
- } = useReplayCount({
- bufferLimit,
- dataSource: 'discover',
- fieldName: 'issue.id',
- organization,
- statsPeriod,
- });
- const {
- getOne: getOneIssue,
- getMany: getManyIssue,
- hasOne: hasOneIssue,
- hasMany: hasManyIssue,
- } = useReplayCount({
- bufferLimit,
- dataSource: 'search_issues',
- fieldName: 'issue.id',
- organization,
- statsPeriod,
- });
- return useMemo(
- () => ({
- getReplayCountForIssue: (id: string, category: IssueCategory) =>
- category === IssueCategory.ERROR ? getOneError(id) : getOneIssue(id),
- getReplayCountForIssues: (id: readonly string[], category: IssueCategory) =>
- category === IssueCategory.ERROR ? getManyError(id) : getManyIssue(id),
- issueHasReplay: (id: string, category: IssueCategory) =>
- category === IssueCategory.ERROR ? hasOneError(id) : hasOneIssue(id),
- issuesHaveReplay: (id: readonly string[], category: IssueCategory) =>
- category === IssueCategory.ERROR ? hasManyError(id) : hasManyIssue(id),
- }),
- [
- getManyError,
- getManyIssue,
- getOneError,
- getOneIssue,
- hasManyError,
- hasManyIssue,
- hasOneError,
- hasOneIssue,
- ]
- );
- }
|