Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions src/js/form-util.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { $, $$, downloadBlob } from './dom-utils'
import { addSlash, getFormattedDate } from './util'
import pdfBase from '../certificate.pdf'
import { generatePdf } from './pdf-util'
import { setPreviousFormValue } from './localstorage'

const conditions = {
'#field-firstname': {
Expand Down Expand Up @@ -127,9 +128,19 @@ export function prepareInputs (formInputs, reasonInputs, reasonFieldset, reasonA
return
}

console.log(getProfile(formInputs), reasons)
const profile = getProfile(formInputs)

const pdfBlob = await generatePdf(getProfile(formInputs), reasons, pdfBase)
;[
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je ne suis pas un expert de JavaScript donc je peux me tromper, mais est-ce que ce point-virgule n'est pas en trop ?

Copy link
Copy Markdown
Author

@0xCAFEADD1C7 0xCAFEADD1C7 Oct 30, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sans le point virgule, javascript croit que le [ est l'accès à l'élément d'un tableau qui serait retourné par la ligne au dessus

par exemple

console.log('test')
[1].forEach(e => console.log)

est interprété comme

console.log('test')[1].forEach(e => console.log)

et throw une erreur "cannot read property '1' of undefined"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ce ne serait pas plus logique de mettre les trailing semicolons... à la fin de la ligne ? Ou ESLint l'empêche ?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://dev.to/adriennemiller/semicolons-in-javascript-to-use-or-not-to-use-2nli

TLDR: en gros, au moment de compiler le code, JavaScript détermine les endroits où il pense qu'il aurait dû y avoir des points-virgule. Sauf qu'il y a plein de cas où il se foire. Dans ces conditions, il me semble plus judicieux de mettre les points-virgule partout pour éviter les erreurs.
Bonus : ça rend le code plus accessible à ceux qui sont moins habitués aux subtilité du langage, et ça réduit un peu la complexité cognitive du code :)

Cela dit, il me semble plus sage de faire dans le cadre d'une autre issue pour éviter du bruit inutile sur cette PR (et ça sera plus propice aux discussions) :)

'address',
'birthday',
'city',
'firstname',
'lastname',
'placeofbirth',
'zipcode',
].forEach(inputName => setPreviousFormValue(inputName, profile[inputName]))

const pdfBlob = await generatePdf(profile, reasons, pdfBase)

const creationInstant = new Date()
const creationDate = creationInstant.toLocaleDateString('fr-CA')
Expand Down
2 changes: 2 additions & 0 deletions src/js/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import '../css/main.css'
import formData from '../form-data.json'

import { $, appendTo, createElement } from './dom-utils'
import { getPreviousFormValue } from './localstorage'

const createTitle = () => {
const h2 = createElement('h2', { className: 'titre-2', innerHTML: 'Remplissez en ligne votre déclaration numérique : ' })
Expand Down Expand Up @@ -51,6 +52,7 @@ const createFormGroup = ({
placeholder,
required: true,
type,
value: getPreviousFormValue(name),
}

const input = createElement('input', inputAttrs)
Expand Down
12 changes: 12 additions & 0 deletions src/js/localstorage.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
const localStorage = window.localStorage || {
getItem: () => null,
setItem: () => undefined,
}

export function getPreviousFormValue(name) {
return localStorage.getItem(`form-value-${name}`)
}

export function setPreviousFormValue(name, value) {
localStorage.setItem(`form-value-${name}`, value)
}