import {IndexedMembersByProject} from 'sentry/actionCreators/members'; import LoadingError from 'sentry/components/loadingError'; import LoadingIndicator from 'sentry/components/loadingIndicator'; import {PanelBody} from 'sentry/components/panels'; import StreamGroup from 'sentry/components/stream/group'; import GroupStore from 'sentry/stores/groupStore'; import {Group} from 'sentry/types'; import theme from 'sentry/utils/theme'; import useApi from 'sentry/utils/useApi'; import useMedia from 'sentry/utils/useMedia'; import useOrganization from 'sentry/utils/useOrganization'; import NoGroupsHandler from './noGroupsHandler'; import {IssueSortOptions} from './utils'; type GroupListBodyProps = { displayReprocessingLayout: boolean; error: string | null; groupIds: string[]; groupStatsPeriod: string; loading: boolean; memberList: IndexedMembersByProject; query: string; refetchGroups: () => void; selectedProjectIds: number[]; sort: string; }; type GroupListProps = { displayReprocessingLayout: boolean; groupIds: string[]; groupStatsPeriod: string; memberList: IndexedMembersByProject; query: string; sort: string; }; function GroupListBody({ groupIds, memberList, query, sort, displayReprocessingLayout, groupStatsPeriod, loading, error, refetchGroups, selectedProjectIds, }: GroupListBodyProps) { const api = useApi(); const organization = useOrganization(); if (loading) { return ; } if (error) { return ; } if (!groupIds.length) { return ( ); } return ( ); } function GroupList({ groupIds, memberList, query, sort, displayReprocessingLayout, groupStatsPeriod, }: GroupListProps) { const topIssue = groupIds[0]; const showInboxTime = sort === IssueSortOptions.INBOX; const canSelect = !useMedia(`(max-width: ${theme.breakpoints.small})`); return ( {groupIds.map((id, index) => { const hasGuideAnchor = id === topIssue; const group = GroupStore.get(id) as Group | undefined; return ( ); })} ); } export default GroupListBody;