Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JS@PayPal - Specialization with Dynamic React F...

Avatar for Bruno Sanches Bruno Sanches
September 23, 2016

JS@PayPal - Specialization with Dynamic React Forms

Avatar for Bruno Sanches

Bruno Sanches

September 23, 2016
Tweet

Other Decks in Programming

Transcript

  1. Default flow Team 1 Group flow 1 Flow 1.1 Flow

    1.2 Team 2 Group flow 2 Flow 2.1 Flow 2.2 Team 3 Flow 3 Team 4 Flow 4
  2. "email": { "component": "TextInput", "validations": [ "required", "emailCheck" ], "attributes":

    { "title": "email.title", "placeholder": "email.placeholder", "name": "email" }, "wrapperAttributes": { "className": "col-md-12" } }
  3. "email": { "component": "TextInput", "validations": [ "required", "emailCheck" ], "attributes":

    { "title": "email.title", "placeholder": "email.placeholder", "name": "email" }, "wrapperAttributes": { "className": "col-md-12" } }
  4. "email": { "component": "TextInput", "validations": [ "required", "emailCheck" ], "attributes":

    { "title": "email.title", "placeholder": "email.placeholder", "name": "email" }, "wrapperAttributes": { "className": "col-md-12" } }
  5. "email": { "component": "TextInput", "validations": [ "required", "emailCheck" ], "attributes":

    { "title": "email.title", "placeholder": "email.placeholder", "name": "email" }, "wrapperAttributes": { "className": "col-md-12" } }
  6. "email": { "component": "TextInput", "validations": [ "required", "emailCheck" ], "attributes":

    { "title": "email.title", "placeholder": "email.placeholder", "name": "email" }, "wrapperAttributes": { "className": "col-md-12" } }
  7. if (country === 'US') { if (product === 'product1') {

    } else if (product === 'product2') { } }
  8. if (country === 'US') { if (product === 'product1') {

    } else if (product === 'product2') { } } else if (group === 'EU') { }
  9. if (country === 'US') { if (product === 'product1') {

    } else if (product === 'product2') { } } else if (group === 'EU') { if (country === 'GB') { } }
  10. if (country === 'US') { if (product === 'product1') {

    } else if (product === 'product2') { } } else if (group === 'EU') { if (country === 'GB') { if (product === 'product1') { } } }
  11. if (country === 'US') { if (product === 'product1') {

    } else if (product === 'product2') { } } else if (group === 'EU') { if (country === 'GB') { if (product === 'product1') { if (experiment === 'exp1') { } } } }
  12. Named Hooks to the rescue Isolates business logic Open source

    module https://github.com/brunops/named-hooks
  13. Usability tests - Setup Script 1. Create a form with

    text fields 2. Add a dropdown 3. Configure validations 4. Abstract fields 5. Create new page
  14. :(

  15. Current status 4 teams currently working with F0 Working towards

    open sourcing https://github.paypal.com/f0/f0/issues