Skip to content

Commit b835464

Browse files
sachinrameshnaottr
authored andcommitted
feat(account-creation): add purspose of purchase field on details page
ref: #MANAGER-20843 Signed-off-by: Sachin Ramesh <sachin.ramesh@ovhcloud.com>
1 parent 9bf6b23 commit b835464

File tree

10 files changed

+100
-5
lines changed

10 files changed

+100
-5
lines changed

packages/manager/apps/account-creation/public/translations/account-details/Messages_de_DE.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
"account_details_field_sms_consent": "Ich bin damit einverstanden, SMS zu den Neuheiten und kommerziellen Angeboten von OVHcloud zu erhalten.",
4141
"account_details_field_area": "Region",
4242
"account_details_field_state": "Status",
43+
"account_details_field_purchase_purpose": "Grund für den Kauf",
44+
"account_details_field_purchase_purpose_reason_for_commercial":"Nutzung im Rahmen einer Geschäftstätigkeit",
45+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Nutzung für gemeinnützige, religiöse oder politische Aktivitäten",
46+
"account_details_field_purchase_purpose_reason_for_personal":"Persönliche Nutzung",
47+
"account_details_field_purchase_purpose_reason_for_public-service":"Nutzung für die Erbringung öffentlicher Dienstleistungen",
48+
"account_details_field_purchase_purpose_reason_for_study":"Nutzung für Studien oder akademische Forschung",
4349
"account_details_field_province": "Provinz",
4450
"account_details_field_corporation_firstname": "Vorname des gesetzlichen Vertreters",
4551
"account_details_field_corporation_lastname": "Name des gesetzlichen Vertreters",

packages/manager/apps/account-creation/public/translations/account-details/Messages_en_GB.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
"account_details_field_sms_consent": "I agree to receive updates and promotional marketing information about OVHcloud services",
4141
"account_details_field_area": "Region",
4242
"account_details_field_state": "State",
43+
"account_details_field_purchase_purpose": "Reason for purchase",
44+
"account_details_field_purchase_purpose_reason_for_commercial":"Business",
45+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Non-profit, religious or political",
46+
"account_details_field_purchase_purpose_reason_for_personal":"Personal",
47+
"account_details_field_purchase_purpose_reason_for_public-service":"Government services",
48+
"account_details_field_purchase_purpose_reason_for_study":"Academic study/research",
4349
"account_details_field_province": "Region",
4450
"account_details_field_corporation_firstname": "Last name (legal representative):",
4551
"account_details_field_corporation_lastname": "First name (legal representative):",

packages/manager/apps/account-creation/public/translations/account-details/Messages_es_ES.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
"account_details_field_sms_consent": "Acepto libremente recibir SMS sobre las novedades y ofertas comerciales de OVHcloud.",
4141
"account_details_field_area": "Región",
4242
"account_details_field_state": "Estado",
43+
"account_details_field_purchase_purpose": "Motivo de la compra",
44+
"account_details_field_purchase_purpose_reason_for_commercial":"Utilización en el marco de una actividad comercial",
45+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Utilización en el marco de actividades no lucrativas, religiosas o políticas",
46+
"account_details_field_purchase_purpose_reason_for_personal":"Utilización a título personal",
47+
"account_details_field_purchase_purpose_reason_for_public-service":"Utilización con fines de servicio público",
48+
"account_details_field_purchase_purpose_reason_for_study":"Utilización con fines académicos o de investigación",
4349
"account_details_field_province": "Provincia",
4450
"account_details_field_corporation_firstname": "Nombre del representante legal",
4551
"account_details_field_corporation_lastname": "Apellido del representante legal",

packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_CA.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
"account_details_field_city": "Ville",
3131
"account_details_field_area": "Région",
3232
"account_details_field_state": "État",
33+
"account_details_field_purchase_purpose": "Raison de l'achat",
34+
"account_details_field_purchase_purpose_reason_for_commercial":"Utilisation dans le cadre d'une activité commerciale",
35+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Utilisation dans le cadre d'une activité non lucrative, religieuse ou politique",
36+
"account_details_field_purchase_purpose_reason_for_personal":"Utilisation à titre personnel",
37+
"account_details_field_purchase_purpose_reason_for_public-service":"Utilisation à des fins de service public",
38+
"account_details_field_purchase_purpose_reason_for_study":"Utilisation à des fins d'étude ou de recherche universitaire",
3339
"account_details_field_province": "Province",
3440
"account_details_field_phone": "Téléphone",
3541
"account_details_phone_type_option_mobile": "Téléphone portable",

packages/manager/apps/account-creation/public/translations/account-details/Messages_fr_FR.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@
3030
"account_details_field_city": "Ville",
3131
"account_details_field_area": "Région",
3232
"account_details_field_state": "État",
33+
"account_details_field_purchase_purpose": "Raison de l'achat",
34+
"account_details_field_purchase_purpose_reason_for_commercial":"Utilisation dans le cadre d'une activité commerciale",
35+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Utilisation dans le cadre d'une activité non lucrative, religieuse ou politique",
36+
"account_details_field_purchase_purpose_reason_for_personal":"Utilisation à titre personnel",
37+
"account_details_field_purchase_purpose_reason_for_public-service":"Utilisation à des fins de service public",
38+
"account_details_field_purchase_purpose_reason_for_study":"Utilisation à des fins d'étude ou de recherche universitaire",
3339
"account_details_field_province": "Province",
3440
"account_details_field_phone": "Téléphone",
3541
"account_details_phone_type_option_mobile": "Téléphone portable",

packages/manager/apps/account-creation/public/translations/account-details/Messages_it_IT.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
"account_details_field_sms_consent": "Accetto liberamente di ricevere SMS relativi a novità e offerte commerciali di OVHcloud.",
4141
"account_details_field_area": "Region",
4242
"account_details_field_state": "Stato",
43+
"account_details_field_purchase_purpose": "Motivo dell'acquisto",
44+
"account_details_field_purchase_purpose_reason_for_commercial":"Utilizzo nell'ambito di un'attività commerciale",
45+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Utilizzo nell'ambito di un'attività non lucrativa, religiosa o politica",
46+
"account_details_field_purchase_purpose_reason_for_personal":"Utilizzo a titolo personale",
47+
"account_details_field_purchase_purpose_reason_for_public-service":"Utilizzo a fini di servizio pubblico",
48+
"account_details_field_purchase_purpose_reason_for_study":"Utilizzo a fini di studio o ricerca universitaria",
4349
"account_details_field_province": "Provincia",
4450
"account_details_field_corporation_firstname": "Nome del rappresentante legale",
4551
"account_details_field_corporation_lastname": "Cognome del rappresentante legale",

packages/manager/apps/account-creation/public/translations/account-details/Messages_pl_PL.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,12 @@
2828
"account_details_success_message": "Twoje dane zostały zapisane.",
2929
"account_details_field_area": "Region",
3030
"account_details_field_state": "Status",
31+
"account_details_field_purchase_purpose": "Przyczyna zakupu",
32+
"account_details_field_purchase_purpose_reason_for_commercial":"Do celów związanych z działalnością gospodarczą",
33+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Do celów związanych z działalnością non-profit, religijną lub polityczną",
34+
"account_details_field_purchase_purpose_reason_for_personal":"Do celów prywatnych",
35+
"account_details_field_purchase_purpose_reason_for_public-service":"Do celów użyteczności publicznej",
36+
"account_details_field_purchase_purpose_reason_for_study":"Do celów naukowych lub badań akademickich",
3137
"account_details_field_province": "Region",
3238
"account_details_title_individual": "Wpisz dane",
3339
"account_details_title_corporation": "Wpisz dane firmy",

packages/manager/apps/account-creation/public/translations/account-details/Messages_pt_PT.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@
4040
"account_details_field_sms_consent": "Aceito receber SMS relativos às novidades e ofertas comerciais da OVHcloud.",
4141
"account_details_field_area": "Região",
4242
"account_details_field_state": "Estado",
43+
"account_details_field_purchase_purpose": "Razão da compra",
44+
"account_details_field_purchase_purpose_reason_for_commercial":"Utilização no âmbito de uma atividade comercial",
45+
"account_details_field_purchase_purpose_reason_for_non-commercial":"Utilização sem fins lucrativos, religiosa ou política",
46+
"account_details_field_purchase_purpose_reason_for_personal":"Utilização pessoal",
47+
"account_details_field_purchase_purpose_reason_for_public-service":"Utilização para fins de serviço público",
48+
"account_details_field_purchase_purpose_reason_for_study":"Utilização para fins de estudo ou de investigação universitária",
4349
"account_details_field_province": "Província",
4450
"account_details_field_corporation_firstname": "Nome próprio do representante legal",
4551
"account_details_field_corporation_lastname": "Nome do representante legal",

packages/manager/apps/account-creation/src/pages/accountDetails/accountDetails.page.tsx

Lines changed: 50 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,14 @@ function AccountDetailsForm({
126126
smsConsent?: boolean;
127127
};
128128

129-
const zodSchema = useMemo(() => getZodSchemaFromRule(rules).extend({
130-
confirmSend: z.literal(true),
131-
smsConsent: z.boolean().optional(),
132-
}), [rules]);
129+
const zodSchema = useMemo(
130+
() =>
131+
getZodSchemaFromRule(rules).extend({
132+
confirmSend: z.literal(true),
133+
smsConsent: z.boolean().optional(),
134+
}),
135+
[rules],
136+
);
133137

134138
function renderTranslatedZodError(message: string | undefined, rule: Rule) {
135139
if (!message) return undefined;
@@ -520,6 +524,48 @@ function AccountDetailsForm({
520524
</OdsFormField>
521525
)}
522526
/>
527+
{rules?.purposeOfPurchase && (
528+
<Controller
529+
control={control}
530+
name="purposeOfPurchase"
531+
render={({ field: { name, value, onChange, onBlur } }) => (
532+
<OdsFormField className="w-full">
533+
<OdsText
534+
preset="caption"
535+
aria-label={t('account_details_field_purchase_purpose')}
536+
>
537+
<label htmlFor={name}>
538+
{t('account_details_field_purchase_purpose')}
539+
{rules?.purposeOfPurchase?.mandatory && ' *'}
540+
</label>
541+
</OdsText>
542+
{!isLoading && (
543+
<>
544+
<OdsSelect
545+
name={name}
546+
value={value}
547+
onOdsChange={onChange}
548+
onOdsBlur={onBlur}
549+
isDisabled={!rules}
550+
className="flex-1"
551+
key={`purpose_purchase_${rules?.purposeOfPurchase.in?.join(
552+
'_',
553+
) || 'empty'}`}
554+
>
555+
{rules?.purposeOfPurchase.in?.map((type) => (
556+
<option key={type} value={type}>
557+
{t(
558+
`account_details_field_purchase_purpose_reason_for_${type}`,
559+
)}
560+
</option>
561+
))}
562+
</OdsSelect>
563+
</>
564+
)}
565+
</OdsFormField>
566+
)}
567+
/>
568+
)}
523569
</div>
524570
)}
525571

packages/manager/apps/account-creation/src/types/rule.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ export type RuleField =
2626
| 'smsConsent'
2727
| 'spareEmail'
2828
| 'vat'
29-
| 'zip';
29+
| 'zip'
30+
| 'purposeOfPurchase';
3031

3132
export type Rule = {
3233
defaultValue: string | null;

0 commit comments

Comments
 (0)