import {IndexedMembersByProject} from 'sentry/actionCreators/members'; import LoadingError from 'sentry/components/loadingError'; import LoadingIndicator from 'sentry/components/loadingIndicator'; import PanelBody from 'sentry/components/panels/panelBody'; 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 {useSyncedLocalStorageState} from 'sentry/utils/useSyncedLocalStorageState'; import NoGroupsHandler from './noGroupsHandler'; import {IssueSortOptions, SAVED_SEARCHES_SIDEBAR_OPEN_LOCALSTORAGE_KEY} 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 [isSavedSearchesOpen] = useSyncedLocalStorageState( SAVED_SEARCHES_SIDEBAR_OPEN_LOCALSTORAGE_KEY, false ); const topIssue = groupIds[0]; const showInboxTime = sort === IssueSortOptions.INBOX; const canSelect = !useMedia( `(max-width: ${ isSavedSearchesOpen ? theme.breakpoints.large : theme.breakpoints.small })` ); return ( {groupIds.map((id, index) => { const hasGuideAnchor = id === topIssue; const group = GroupStore.get(id) as Group | undefined; return ( ); })} ); } export default GroupListBody;