import capitalize from 'lodash/capitalize';
import ExternalLink from 'sentry/components/links/externalLink';
import {t, tct, tn} from 'sentry/locale';
import ExtraDescription from './extraDescription';
export const BULK_LIMIT = 1000;
export const BULK_LIMIT_STR = BULK_LIMIT.toLocaleString();
export enum ConfirmAction {
RESOLVE = 'resolve',
UNRESOLVE = 'unresolve',
IGNORE = 'ignore',
BOOKMARK = 'bookmark',
UNBOOKMARK = 'unbookmark',
MERGE = 'merge',
DELETE = 'delete',
}
function getBulkConfirmMessage(action: string, queryCount: number) {
if (queryCount > BULK_LIMIT) {
return tct(
'Are you sure you want to [action] the first [bulkNumber] issues that match the search?',
{
action,
bulkNumber: BULK_LIMIT_STR,
}
);
}
return tct(
'Are you sure you want to [action] all [bulkNumber] issues that match the search?',
{
action,
bulkNumber: queryCount,
}
);
}
export function getConfirm(
numIssues: number,
allInQuerySelected: boolean,
query: string,
queryCount: number
) {
return function (action: ConfirmAction | string, canBeUndone: boolean, append = '') {
const question = allInQuerySelected
? getBulkConfirmMessage(`${action}${append}`, queryCount)
: tn(
`Are you sure you want to ${action} this %s issue${append}?`,
`Are you sure you want to ${action} these %s issues${append}?`,
numIssues
);
let message;
switch (action) {
case ConfirmAction.DELETE:
message = tct(
'Bulk deletion is only recommended for junk data. To clear your stream, consider resolving or ignoring. [link:When should I delete events?]',
{
link: (
{question}
{message}
}