Skip to content

Instantly share code, notes, and snippets.

@ThomasFlorelli
Created April 11, 2022 09:03
Show Gist options
  • Save ThomasFlorelli/7144457638d2f7076a9a9d4bdd1c82db to your computer and use it in GitHub Desktop.
Save ThomasFlorelli/7144457638d2f7076a9a9d4bdd1c82db to your computer and use it in GitHub Desktop.
{
"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