argo-cd

Форк
0
/
set-finalizer-on-application.tsx 
40 строк · 1.8 Кб
1
import {Checkbox, HelpIcon} from 'argo-ui';
2
import * as React from 'react';
3
import * as ReactForm from 'react-form';
4

5
export const SetFinalizerOnApplication = ReactForm.FormField((props: {fieldApi: ReactForm.FieldApi}) => {
6
    const {
7
        fieldApi: {getValue, setValue}
8
    } = props;
9
    const finalizerVal = 'resources-finalizer.argocd.argoproj.io';
10
    const currentValue = getValue() || [];
11
    const index = currentValue.findIndex((item: string) => item === finalizerVal);
12
    const isChecked = index < 0 ? false : true;
13
    return (
14
        <div className='small-12 large-6' style={{borderBottom: '0'}}>
15
            <React.Fragment>
16
                <Checkbox
17
                    id='set-finalizer'
18
                    checked={isChecked}
19
                    onChange={(state: boolean) => {
20
                        const value = getValue() || [];
21
                        if (!state) {
22
                            const i = value.findIndex((item: string) => item === finalizerVal);
23
                            if (i >= 0) {
24
                                const tmp = value.slice();
25
                                tmp.splice(i, 1);
26
                                setValue(tmp);
27
                            }
28
                        } else {
29
                            const tmp = value.slice();
30
                            tmp.push(finalizerVal);
31
                            setValue(tmp);
32
                        }
33
                    }}
34
                />
35
                <label htmlFor={`set-finalizer`}>Set Deletion Finalizer</label>
36
                <HelpIcon title='If checked, the resources deletion finalizer will be set on the application. Potentially destructive, refer to the documentation for more information on the effects of the finalizer.' />
37
            </React.Fragment>
38
        </div>
39
    );
40
});
41

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

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

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

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