argo-cd

Форк
0
33 строки · 1.4 Кб
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
};
34

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.