import {Fragment, useState} from 'react'; import styled from '@emotion/styled'; import {addErrorMessage} from 'sentry/actionCreators/indicator'; import {ModalRenderProps} from 'sentry/actionCreators/modal'; import NumberField from 'sentry/components/forms/fields/numberField'; import RadioField from 'sentry/components/forms/fields/radioField'; import Form from 'sentry/components/forms/form'; import ExternalLink from 'sentry/components/links/externalLink'; import List from 'sentry/components/list'; import ListItem from 'sentry/components/list/listItem'; import {t, tct} from 'sentry/locale'; import {space} from 'sentry/styles/space'; import {Group, Organization} from 'sentry/types'; export type ReprocessEventModalOptions = { groupId: Group['id']; organization: Organization; }; export function ReprocessingEventModal({ Header, Body, organization, closeModal, groupId, }: ModalRenderProps & ReprocessEventModalOptions) { const [maxEvents, setMaxEvents] = useState(undefined); function handleSuccess() { closeModal(); window.location.reload(); } return (

{t('Reprocess Events')}

{t( 'Reprocessing applies new debug files and grouping enhancements to this Issue. Please consider these impacts:' )} {tct( "[strong:Quota applies.] Every event you choose to reprocess counts against your plan's quota. Rate limits and spike protection do not apply.", {strong: } )} {tct( '[strong:Attachment storage required.] If your events come from minidumps or unreal crash reports, you must have [link:attachment storage] enabled.', { strong: , link: ( ), } )} {t( 'Please wait one hour after upload before attempting to reprocess missing debug files.' )} {tct('For more information, please refer to [link:the documentation.]', { link: ( ), })}
addErrorMessage(t('Failed to reprocess. Please check your input.')) } onCancel={closeModal} footerClass="modal-footer" > setMaxEvents(!isNaN(value) ? Number(value) : undefined)} min={1} />
); } const Introduction = styled('p')` font-size: ${p => p.theme.fontSizeLarge}; `; const StyledList = styled(List)` gap: ${space(1)}; margin-bottom: ${space(4)}; font-size: ${p => p.theme.fontSizeMedium}; `;