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 React, {useState} from "react";
import {Connector, ConnectorProvider} from "../../utils/api/connectors"; import {Connector, ConnectorProvider} from "../../utils/api/connectors";
import {t} from "ttag"; import {t} from "ttag";
@@ -24,6 +24,9 @@ export function ConnectorForm({form, onCreate}: { form: FormInstance, onCreate:
const ovhEndpointList = ovhEndpointListFunction() const ovhEndpointList = ovhEndpointListFunction()
const ovhSubsidiaryList = ovhSubsidiaryListFunction() const ovhSubsidiaryList = ovhSubsidiaryListFunction()
const ovhPricingMode = ovhPricingModeFunction() const ovhPricingMode = ovhPricingModeFunction()
const [open, setOpen] = useState(false)
const [ovhPricingModeValue, setOvhPricingModeValue] = useState<string | undefined>()
return <Form return <Form
{...formItemLayoutWithOutLabel} {...formItemLayoutWithOutLabel}
@@ -88,7 +91,24 @@ export function ConnectorForm({form, onCreate}: { form: FormInstance, onCreate:
name={['authData', 'pricingMode']} name={['authData', 'pricingMode']}
rules={[{required: true, message: t`Required`}]} 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> </Form.Item>
</> </>
} }

View File

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

View File

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