Created
April 11, 2022 09:03
-
-
Save ThomasFlorelli/7144457638d2f7076a9a9d4bdd1c82db to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"id": "electronic-device-journey", | |
"content": [ | |
{ | |
"id": "progress", | |
"type": "stepper_template", | |
"props": { | |
"form_title": "Formulaire d'adhésion", | |
"logo": "Electronic device Logo", | |
"steps": [ | |
{ | |
"label": "Vos informations", | |
"sub_steps": [ | |
{ | |
"label": "Identité", | |
"content": [ | |
{ | |
"id": "identity_text", | |
"type": "text", | |
"props": { | |
"text": "Lorem ipsum sit dolor admet" | |
} | |
}, | |
{ | |
"id": "lastname", | |
"type": "form_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
}, | |
{ | |
"type": "isAlpha", | |
"message": "Uniquement des caractères", | |
"args": [ | |
"fr-FR", | |
{ | |
"ignore": "-s" | |
} | |
] | |
} | |
], | |
"props": { | |
"label": "Nom *", | |
"placeholder": "Renseignez votre nom" | |
} | |
}, | |
{ | |
"id": "firstname", | |
"type": "form_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
}, | |
{ | |
"type": "isAlpha", | |
"message": "Uniquement des caractères", | |
"args": [ | |
"fr-FR", | |
{ | |
"ignore": "-s" | |
} | |
] | |
} | |
], | |
"props": { | |
"label": "Prénom *", | |
"placeholder": "Renseignez votre prénom" | |
} | |
} | |
] | |
}, | |
{ | |
"label": "Contact", | |
"content": [ | |
{ | |
"id": "contact_text", | |
"type": "text", | |
"props": { | |
"text": "Lorem ipsum sit dolor admet" | |
} | |
}, | |
{ | |
"id": "phone", | |
"type": "form_phone_input", | |
"props": { | |
"label": "Numéro de téléphone *", | |
"placeholder": "00 00 00 00 00" | |
} | |
}, | |
{ | |
"id": "email", | |
"type": "form_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
}, | |
{ | |
"type": "isEmail", | |
"message": "Ce n'est pas un email valide" | |
} | |
], | |
"props": { | |
"label": "Email *", | |
"placeholder": "adresse@email.com" | |
} | |
} | |
] | |
}, | |
{ | |
"label": "Adresse", | |
"content": [ | |
{ | |
"id": "adress_text", | |
"type": "text", | |
"props": { | |
"text": "Lorem ipsum sit dolor admet" | |
} | |
}, | |
{ | |
"id": "adress", | |
"type": "form_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
} | |
], | |
"props": { | |
"label": "Adresse*", | |
"placeholder": "Renseignez votre adresse" | |
} | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"label": "Informations produit", | |
"sub_steps": [ | |
{ | |
"label": "Choix du produit", | |
"content": [ | |
{ | |
"id": "product_choice_text", | |
"type": "text", | |
"props": { | |
"text": "Lorem ipsum sit dolor admet" | |
} | |
}, | |
{ | |
"id": "product", | |
"type": "form_select_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
} | |
], | |
"props": { | |
"label": "Produit*", | |
"placeholder": "Sélectionnez un produit", | |
"options": [ | |
{ | |
"label": "Produit 1", | |
"value": "Produit 1" | |
}, | |
{ | |
"label": "Produit 2", | |
"value": "Produit 2" | |
}, | |
{ | |
"label": "Produit 3", | |
"value": "Produit 3" | |
}, | |
{ | |
"label": "Produit 4", | |
"value": "Produit 4" | |
} | |
] | |
} | |
}, | |
{ | |
"id": "brand", | |
"type": "form_select_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
} | |
], | |
"props": { | |
"label": "Marque*", | |
"placeholder": "Sélectionnez une marque", | |
"options": [ | |
{ | |
"label": "Marque 1", | |
"value": "Marque 1" | |
}, | |
{ | |
"label": "Marque 2", | |
"value": "Marque 2" | |
}, | |
{ | |
"label": "Marque 3", | |
"value": "Marque 3" | |
}, | |
{ | |
"label": "Marque 4", | |
"value": "Marque 4" | |
} | |
] | |
} | |
} | |
] | |
}, | |
{ | |
"label": "Type de produit", | |
"content": [ | |
{ | |
"id": "product_type_text", | |
"type": "text", | |
"props": { | |
"text": "Lorem ipsum sit dolor admet" | |
} | |
}, | |
{ | |
"id": "product-type", | |
"type": "form_select_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
} | |
], | |
"props": { | |
"label": "Type*", | |
"placeholder": "Sélectionnez un type de produit", | |
"options": [ | |
{ | |
"label": "Type 1", | |
"value": "Type 1" | |
}, | |
{ | |
"label": "Type 2", | |
"value": "Type 2" | |
}, | |
{ | |
"label": "Type 3", | |
"value": "Type 3" | |
}, | |
{ | |
"label": "Type 4", | |
"value": "Type 4" | |
} | |
] | |
} | |
}, | |
{ | |
"id": "serial-number", | |
"type": "form_input", | |
"constraints": [ | |
{ | |
"type": "required", | |
"message": "Ce champs est requis" | |
} | |
], | |
"props": { | |
"label": "Numéro de série*", | |
"placeholder": "Renseignez le numéro de série de l'appareil" | |
} | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"label": "Votre devis", | |
"type": "2cols", | |
"content": [ | |
{ | |
"id": "quote_with_guarantees", | |
"type": "quote_guarantees", | |
"trigger": [ | |
{ | |
"id": "fetch_quote", | |
"function": "\n const graphql_request = await context.graphql_client.send_request(\n `mutation put($input: QuoteRequestInput!) {\n putQuoteRequest(input: $input) {\n id\n }\n }`, {\n prospectEmail: \"helloworld@seyna.eu\",\n guarantee: 'accident',\n petType: 'dog',\n category: '1',\n capital: 0,\n age: 1,\n rate: 0.8,\n limit: 1000,\n deductible: 0,\n prevention: 0,\n })\n \n console.log('should execute :', graphql_request)\n \n const get_quote = await context.graphql_client.send_request(\n `query Get {\n quote(quoteId: \"helloworld@seyna.eu\") {\n price\n }\n }`,)\n \n console.log('should execute :', get_quote)\n \n return { key: 'text', value: get_quote.quote.price }\n ", | |
"args": [ | |
"email" | |
] | |
} | |
], | |
"props": { | |
"text": "79 ", | |
"text_suffix": "€/an", | |
"guarantees": [ | |
{ | |
"included": true, | |
"label": "Couverture des frais de réparation en cas de panne" | |
}, | |
{ | |
"included": true, | |
"label": "Prise en charge des réparations sur les pièces les plus courantes : moteur, freins, boîte de vitesses…" | |
}, | |
{ | |
"included": true, | |
"label": "Plafond de prise en charge" | |
}, | |
{ | |
"included": true, | |
"label": "1 000 € / an quel que soit le nombre de sinistres" | |
}, | |
{ | |
"included": false, | |
"label": "Garantie pièces et main d’œuvre" | |
}, | |
{ | |
"included": false, | |
"label": "Incluant le diagnostic de la panne" | |
} | |
] | |
} | |
} | |
] | |
}, | |
{ | |
"label": "Paiement", | |
"type": "2cols", | |
"content": [ | |
{ | |
"id": "form_payment", | |
"type": "form_payment", | |
"props": { | |
"guarantees_list": [ | |
{ | |
"included": true, | |
"label": "Couverture des frais de réparation en cas de panne" | |
}, | |
{ | |
"included": true, | |
"label": "Prise en charge des réparations sur les pièces les plus courantes : moteur, freins, boîte de vitesses…" | |
}, | |
{ | |
"included": true, | |
"label": "Plafond de prise en charge" | |
}, | |
{ | |
"included": true, | |
"label": "1 000 € / an quel que soit le nombre de sinistres" | |
}, | |
{ | |
"included": false, | |
"label": "Garantie pièces et main d’œuvre" | |
}, | |
{ | |
"included": false, | |
"label": "Incluant le diagnostic de la panne" | |
} | |
], | |
"guarantees_list_title": "Garanties incluses", | |
"text": "79", | |
"text_suffix": "€/an" | |
} | |
} | |
] | |
} | |
] | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment