Permettre de gérer les options proposées dans un DAD #19
|
@ -51,16 +51,18 @@ export const OptionsSection: FunctionComponent<OptionsSectionProps> = ({ dsf, up
|
||||||
}
|
}
|
||||||
|
|
||||||
const onAddOptionClick = (evt: MouseEvent) => {
|
const onAddOptionClick = (evt: MouseEvent) => {
|
||||||
const option = newOption("Décision", "", "");
|
var options = JSON.parse(JSON.stringify(state.section.options))
|
||||||
|
|||||||
setState(state => ({ ...state, changed: true, section: { ...state.section, options: [ ...state.section.options, option ] }}));
|
var option = newOption("Décision", "", "");
|
||||||
wpetit
commented
Si il n'y aura pas d'assignation de nouvelle valeur à la variable, préférer Si il n'y aura pas d'assignation de nouvelle valeur à la variable, préférer `const` à `var` pour identifier assez vite les erreurs liées à l'écrasement de valeurs "constantes".
|
|||||||
|
options.push(option);
|
||||||
|
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
||||||
};
|
};
|
||||||
|
|
||||||
const onOptionChange = (id: string, attrName: string, evt: ChangeEvent<HTMLInputElement>) => {
|
const onOptionChange = (id: string, attrName: string, evt: ChangeEvent<HTMLInputElement>) => {
|
||||||
const target = evt.currentTarget;
|
const target = evt.currentTarget;
|
||||||
const value = target.hasOwnProperty('checked') ? target.checked : target.value;
|
const value = target.hasOwnProperty('checked') ? target.checked : target.value;
|
||||||
var options = state.section.options;
|
var options = JSON.parse(JSON.stringify(state.section.options))
|
||||||
wpetit
commented
Idem qu'un peu plus haut. Idem qu'un peu plus haut.
|
|||||||
options[id][attrName] = value;
|
options[id][attrName] = value;
|
||||||
setState(state => ({ ...state, changed: true, section: { ...state.section, options: options }}));
|
setState(state => ({ ...state, changed: true, section: { ...state.section, options }}));
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -7,7 +7,7 @@ export const QUERY_DECISION_SUPPORT_FILES = gql`
|
||||||
decisionSupportFiles(filter: $filter) {
|
decisionSupportFiles(filter: $filter) {
|
||||||
id,
|
id,
|
||||||
title,
|
title,
|
||||||
sections
|
sections,
|
||||||
createdAt,
|
createdAt,
|
||||||
closedAt,
|
closedAt,
|
||||||
votedAt,
|
votedAt,
|
||||||
|
@ -18,7 +18,7 @@ export const QUERY_DECISION_SUPPORT_FILES = gql`
|
||||||
members {
|
members {
|
||||||
id
|
id
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
`;
|
`;
|
||||||
|
|
Loading…
Reference in New Issue
JSON.parse(JSON.stringify(state.section.options))
est utilisé ici pour faire une copie ?Pourquoi ne pas plutôt faire
const options = [ ...state.section.options ];
? Cette méthode est plus performante qu'une sérialisation/dé-sérialisation JSON du tableau.Malheureusement la méthode de copie que tu cites ne lève pas l'interdiction d'écrire dans options, je n'ai pas trouvé d'autre méthode que JSON.parse(JSON.stringify(state.section.options)) pour en faire une copie modifiable.