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;