feat: add confirm dialog

This commit is contained in:
Maël Gangloff
2024-08-10 00:56:46 +02:00
parent ccc5ef0955
commit 041322b2dd
3 changed files with 62 additions and 32 deletions

View File

@@ -1,4 +1,4 @@
import {Button, Checkbox, Form, FormInstance, Input, Select, Space, Typography} from "antd";
import {Button, Checkbox, Form, FormInstance, Input, Popconfirm, Select, Space, Typography} from "antd";
import React, {useState} from "react";
import {Connector, ConnectorProvider} from "../../utils/api/connectors";
import {t} from "ttag";
@@ -24,6 +24,9 @@ export function ConnectorForm({form, onCreate}: { form: FormInstance, onCreate:
const ovhEndpointList = ovhEndpointListFunction()
const ovhSubsidiaryList = ovhSubsidiaryListFunction()
const ovhPricingMode = ovhPricingModeFunction()
const [open, setOpen] = useState(false)
const [ovhPricingModeValue, setOvhPricingModeValue] = useState<string | undefined>()
return <Form
{...formItemLayoutWithOutLabel}
@@ -88,7 +91,24 @@ export function ConnectorForm({form, onCreate}: { form: FormInstance, onCreate:
name={['authData', 'pricingMode']}
rules={[{required: true, message: t`Required`}]}
>
<Select options={ovhPricingMode} optionFilterProp="label"/>
<Popconfirm
title={t`Confirm pricing mode`}
description={t`Are you sure about this setting? This may result in additional charges from the API Provider`}
onCancel={() => {
setOvhPricingModeValue('create-default');
setOpen(false)
}}
onConfirm={() => setOpen(false)}
open={open}
>
<Select options={ovhPricingMode} optionFilterProp="label" value={ovhPricingModeValue}
onChange={(value: string) => {
setOvhPricingModeValue(value)
if (value !== 'create-default') {
setOpen(true)
}
}}/>
</Popconfirm>
</Form.Item>
</>
}

View File

@@ -75,8 +75,8 @@ readonly class OvhConnector implements ConnectorInterface
'domain' => $ldhName,
]);
$pricingModes = ['create-premium'];
if ('create-premium' !== $authData['pricingMode']) {
$pricingModes = ['create-default'];
if ('create-default' !== $authData['pricingMode']) {
$pricingModes[] = $authData['pricingMode'];
}

View File

@@ -13,15 +13,15 @@ msgstr ""
#: assets/components/RegisterForm.tsx:40
#: assets/components/RegisterForm.tsx:48
#: assets/components/search/DomainSearchBar.tsx:23
#: assets/components/tracking/ConnectorForm.tsx:40
#: assets/components/tracking/ConnectorForm.tsx:66
#: assets/components/tracking/ConnectorForm.tsx:74
#: assets/components/tracking/ConnectorForm.tsx:81
#: assets/components/tracking/ConnectorForm.tsx:89
#: assets/components/tracking/ConnectorForm.tsx:100
#: assets/components/tracking/ConnectorForm.tsx:43
#: assets/components/tracking/ConnectorForm.tsx:69
#: assets/components/tracking/ConnectorForm.tsx:77
#: assets/components/tracking/ConnectorForm.tsx:84
#: assets/components/tracking/ConnectorForm.tsx:92
#: assets/components/tracking/ConnectorForm.tsx:120
#: assets/components/tracking/ConnectorForm.tsx:134
#: assets/components/tracking/ConnectorForm.tsx:143
#: assets/components/tracking/ConnectorForm.tsx:140
#: assets/components/tracking/ConnectorForm.tsx:154
#: assets/components/tracking/ConnectorForm.tsx:163
#: assets/components/tracking/WatchlistForm.tsx:103
msgid "Required"
msgstr ""
@@ -181,71 +181,81 @@ msgid ""
"that may be available soon."
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:154
#: assets/components/tracking/ConnectorForm.tsx:174
#: assets/components/tracking/WatchlistForm.tsx:186
msgid "Create"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:157
#: assets/components/tracking/ConnectorForm.tsx:177
#: assets/components/tracking/WatchlistForm.tsx:189
msgid "Reset"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:37
#: assets/components/tracking/ConnectorForm.tsx:40
msgid "Provider"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:44
#: assets/components/tracking/ConnectorForm.tsx:47
msgid "Please select a Provider"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:72
#: assets/components/tracking/ConnectorForm.tsx:75
msgid "OVH Endpoint"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:79
#: assets/components/tracking/ConnectorForm.tsx:82
msgid "OVH subsidiary"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:87
#: assets/components/tracking/ConnectorForm.tsx:90
msgid "OVH pricing mode"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:98
msgid "Personal Access Token (PAT)"
#: assets/components/tracking/ConnectorForm.tsx:95
msgid "Confirm pricing mode"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:104
msgid "Organization sharing ID"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:107
msgid "It indicates the organization that will pay for the ordered product"
#: assets/components/tracking/ConnectorForm.tsx:96
msgid ""
"Are you sure about this setting? This may result in additional charges from "
"the API Provider"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:118
msgid "Personal Access Token (PAT)"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:124
msgid "Organization sharing ID"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:127
msgid "It indicates the organization that will pay for the ordered product"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:138
msgid "API Terms of Service"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:126
#: assets/components/tracking/ConnectorForm.tsx:146
msgid ""
"I have read and accepted the conditions of use of the Provider API, "
"accessible from this hyperlink"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:132
#: assets/components/tracking/ConnectorForm.tsx:152
msgid "Legal age"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:137
#: assets/components/tracking/ConnectorForm.tsx:157
msgid "I am of the minimum age required to consent to these conditions"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:141
#: assets/components/tracking/ConnectorForm.tsx:161
msgid "Withdrawal period"
msgstr ""
#: assets/components/tracking/ConnectorForm.tsx:146
#: assets/components/tracking/ConnectorForm.tsx:166
msgid ""
"I waive my right of withdrawal regarding the purchase of domain names via "
"the Provider's API"