123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import {t} from 'sentry/locale';
- export const ALL_PROVIDERS = {
- email: 'default',
- slack: 'never',
- msteams: 'never',
- };
- export const ALL_PROVIDER_NAMES = Object.keys(ALL_PROVIDERS);
- /**
- * These values are stolen from the DB.
- */
- export const VALUE_MAPPING = {
- default: 0,
- never: 10,
- always: 20,
- subscribe_only: 30,
- committed_only: 40,
- };
- export const MIN_PROJECTS_FOR_CONFIRMATION = 3;
- export const MIN_PROJECTS_FOR_SEARCH = 3;
- export const MIN_PROJECTS_FOR_PAGINATION = 100;
- export type SupportedProviders = 'email' | 'slack' | 'msteams';
- export type ProviderValue = 'always' | 'never';
- export type NotificationSettingsByProviderObject = {[key: string]: string};
- export type NotificationSettingsObject = {
- [key: string]: {[key: string]: {[key: string]: NotificationSettingsByProviderObject}};
- };
- interface NotificationBaseObject {
- id: string;
- scopeIdentifier: string;
- scopeType: string;
- type: string;
- }
- export interface NotificationOptionsObject extends NotificationBaseObject {
- value: ProviderValue | 'subscribe_only' | 'committed_only';
- }
- export interface NotificationProvidersObject extends NotificationBaseObject {
- provider: SupportedProviders;
- value: ProviderValue;
- }
- export interface DefaultSettings {
- providerDefaults: SupportedProviders[];
- typeDefaults: Record<string, ProviderValue>;
- }
- export const NOTIFICATION_SETTINGS_TYPES = [
- 'alerts',
- 'workflow',
- 'deploy',
- 'approval',
- 'quota',
- 'reports',
- 'email',
- 'spikeProtection',
- ] as const;
- export const SELF_NOTIFICATION_SETTINGS_TYPES = [
- 'personalActivityNotifications',
- 'selfAssignOnResolve',
- ];
- // 'alerts' | 'workflow' ...
- export type NotificationSettingsType = (typeof NOTIFICATION_SETTINGS_TYPES)[number];
- export const NOTIFICATION_SETTINGS_PATHNAMES: Record<NotificationSettingsType, string> = {
- alerts: 'alerts',
- workflow: 'workflow',
- deploy: 'deploy',
- approval: 'approval',
- quota: 'quota',
- reports: 'reports',
- email: 'email',
- spikeProtection: 'spike-protection',
- };
- export const CONFIRMATION_MESSAGE = (
- <div>
- <p style={{marginBottom: '20px'}}>
- <strong>Are you sure you want to disable these notifications?</strong>
- </p>
- <p>
- {t(
- 'Turning this off will irreversibly overwrite all of your fine-tuning settings to "off".'
- )}
- </p>
- </div>
- );
- export const NOTIFICATION_FEATURE_MAP: Partial<Record<NotificationSettingsType, string>> =
- {
- quota: 'slack-overage-notifications',
- spikeProtection: 'spike-projections',
- };
|