From fdca411888d3602cb8a99cffcc42235b2c0b6da9 Mon Sep 17 00:00:00 2001 From: aschmitz Date: Mon, 18 Sep 2017 22:48:39 -0500 Subject: [PATCH] Additional fixes for stringified IDs in JSON These should be the last two. These were identified using eslint to try to identify any plain casts to JavaScript numbers. (Some such casts are legitimate, but these were not.) Adding the following to .eslintrc.yml will identify casts to numbers: ~~~ no-restricted-syntax: - warn - selector: UnaryExpression[operator='+'] > :not(Literal) message: Avoid the use of unary + - selector: CallExpression[callee.name='Number'] message: Casting with Number() may coerce string IDs to numbers ~~~ The remaining three casts appear legitimate: two casts to array indices, one in a server to turn an environment variable into a number. --- app/javascript/mastodon/components/autosuggest_textarea.js | 2 +- .../mastodon/features/compose/components/upload_form.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.js index 35b37600fe540..30e3049dfff28 100644 --- a/app/javascript/mastodon/components/autosuggest_textarea.js +++ b/app/javascript/mastodon/components/autosuggest_textarea.js @@ -128,7 +128,7 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { } onSuggestionClick = (e) => { - const suggestion = Number(e.currentTarget.getAttribute('data-index')); + const suggestion = e.currentTarget.getAttribute('data-index'); e.preventDefault(); this.props.onSuggestionSelected(this.state.tokenStart, this.state.lastToken, suggestion); this.textarea.focus(); diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.js index 78473dab40e06..cf2d2658aeff7 100644 --- a/app/javascript/mastodon/features/compose/components/upload_form.js +++ b/app/javascript/mastodon/features/compose/components/upload_form.js @@ -21,7 +21,7 @@ export default class UploadForm extends React.PureComponent { }; onRemoveFile = (e) => { - const id = Number(e.currentTarget.parentElement.getAttribute('data-id')); + const id = e.currentTarget.parentElement.getAttribute('data-id'); this.props.onRemoveFile(id); }