add.tsx 788 B

123456789101112131415161718192021222324252627282930
  1. import {t} from 'sentry/locale';
  2. import {ProjectId, Rule} from '../types';
  3. import ModalManager from './modalManager';
  4. type ModalManagerProps<T extends ProjectId> = ModalManager<T>['props'];
  5. type Props<T extends ProjectId> = Omit<
  6. ModalManagerProps<T>,
  7. 'title' | 'initialValues' | 'onGetNewRules'
  8. >;
  9. const Add = <T extends ProjectId = undefined>({savedRules, ...props}: Props<T>) => {
  10. const handleGetNewRules = (
  11. values: Parameters<ModalManagerProps<T>['onGetNewRules']>[0]
  12. ) => {
  13. return [...savedRules, {...values, id: savedRules.length}] as Array<Rule>;
  14. };
  15. return (
  16. <ModalManager
  17. {...props}
  18. savedRules={savedRules}
  19. title={t('Add an advanced data scrubbing rule')}
  20. onGetNewRules={handleGetNewRules}
  21. />
  22. );
  23. };
  24. export default Add;