github.com/argoproj/argo-cd/v2@v2.10.9/ui/src/app/applications/components/application-summary/edit-annotations.tsx (about)

     1  import * as React from 'react';
     2  import {FormField} from 'argo-ui';
     3  import {FormApi} from 'react-form';
     4  import * as models from '../../../shared/models';
     5  import {MapInputField} from '../../../shared/components';
     6  import {notificationSubscriptionsParser} from './edit-notification-subscriptions';
     7  
     8  export const EditAnnotations = (props: {formApi: FormApi; app: models.Application}) => {
     9      const once = React.useRef(false);
    10  
    11      const removeNotificationSubscriptionRelatedAnnotations = () => {
    12          const notificationSubscriptions = notificationSubscriptionsParser.annotationsToSubscriptions(props.app.metadata.annotations);
    13  
    14          if (notificationSubscriptions.length > 0) {
    15              const annotationsWithoutNotificationSubscriptions = props.app.metadata.annotations || {};
    16  
    17              for (const notificationSubscriptionAnnotation of notificationSubscriptions) {
    18                  const key = notificationSubscriptionsParser.subscriptionToAnnotationKey(notificationSubscriptionAnnotation);
    19  
    20                  delete annotationsWithoutNotificationSubscriptions[key];
    21              }
    22  
    23              props.formApi.setValue('metadata.annotations', annotationsWithoutNotificationSubscriptions);
    24          }
    25      };
    26  
    27      if (!once.current) {
    28          once.current = true;
    29          removeNotificationSubscriptionRelatedAnnotations();
    30      }
    31  
    32      return <FormField formApi={props.formApi} field='metadata.annotations' component={MapInputField} />;
    33  };