From 1bc0205bbfc52106a155efbd87833389c4339c4f Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 14 Jul 2019 18:21:53 +0200 Subject: [PATCH] Resolve various ESLint-reported issues, add some FIXME notes --- src/components/Login.js | 22 ++++++++++++---------- src/components/chat.js | 9 ++------- src/components/events/Event.js | 7 +++---- src/components/events/image.js | 9 --------- src/components/events/state.js | 1 - src/components/events/text.js | 4 ---- src/components/events/user.js | 1 - src/components/events/video.js | 5 ----- src/components/fileUpload.js | 1 - src/components/filterList.js | 4 +--- src/components/info.js | 2 -- src/components/input.js | 10 ++++++---- src/components/loading.js | 1 - src/components/sidebar.js | 3 --- src/lib/media.js | 2 ++ tests/lib/media.js | 9 +++++++-- 16 files changed, 33 insertions(+), 57 deletions(-) diff --git a/src/components/Login.js b/src/components/Login.js index 30661e7..ded3b57 100644 --- a/src/components/Login.js +++ b/src/components/Login.js @@ -1,11 +1,8 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); const Promise = require('bluebird'); const urllib = require('url'); -const debounce = require('debounce'); -const defaultValue = require('default-value'); let login = create({ displayName: "Login", @@ -156,6 +153,7 @@ let login = create({ }); function getApiServer(hostname) { + /* FIXME: Promise.try */ return new Promise((resolve, reject) => { console.log("Checking for api server from mxid", urllib.format(hostname)); checkApi(hostname).then(() => { @@ -167,8 +165,9 @@ function getApiServer(hostname) { tryWellKnown(hostname).then((hostname) => { console.log("got .well-known host", hostname); resolve(hostname); - }).catch((err) => { - reject("Fatal error trying to get API host"); + }).catch((_err) => { + /* FIXME: Error chaining */ + reject(new Error("Fatal error trying to get API host")); }); }); }); @@ -180,7 +179,8 @@ function checkApi(host) { fetch(versionUrl).then((response) => { if (response.status != 200) { console.log("Invalid homeserver url", versionUrl); - return reject(); + /* FIXME: Error types */ + return reject(new Error("Invalid homeserver URL")); } resolve(); }).catch((err) => { @@ -199,11 +199,12 @@ function tryWellKnown(host) { .then((response) => { if (response.status != 200) { console.log("no well-known in use"); - reject("No homeserver found"); + reject(new Error("No homeserver found")); } return response; - }).catch((error) => { - reject("can't fetch .well-known"); + }).catch((_error) => { + /* FIXME: Error chaining */ + reject(new Error("can't fetch .well-known")); }) .then((response) => response.json()) .then((json) => { @@ -214,7 +215,8 @@ function tryWellKnown(host) { }) .catch((err) => { console.log("Error in json", err); - reject("Error while parsing .well-known"); + /* FIXME: Error chaining */ + reject(new Error("Error while parsing .well-known")); }); }); } diff --git a/src/components/chat.js b/src/components/chat.js index 2b494a4..91631b2 100644 --- a/src/components/chat.js +++ b/src/components/chat.js @@ -1,12 +1,7 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); -const debounce = require('debounce'); const jdenticon = require('jdenticon'); -const defaultValue = require('default-value'); -const sdk = require('matrix-js-sdk'); const sanitize = require('sanitize-html'); const Event = require('./events/Event.js'); @@ -73,7 +68,7 @@ let chat = create({ }; }, - getSnapshotBeforeUpdate: function(oldProps, oldState) { + getSnapshotBeforeUpdate: function(_oldProps, _oldState) { let ref = this.state.ref; if (ref == null) {return null;} if ((ref.scrollHeight - ref.offsetHeight) - ref.scrollTop < 100) { // Less than 100px from bottom @@ -161,7 +156,7 @@ let chat = create({ }); messageGroups.groups.push(messageGroups.current); - events = messageGroups.groups.map((events, id) => { + events = messageGroups.groups.map((events) => { return ; }); } diff --git a/src/components/events/Event.js b/src/components/events/Event.js index 1ec257c..edc17dd 100644 --- a/src/components/events/Event.js +++ b/src/components/events/Event.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); const defaultValue = require('default-value'); @@ -32,7 +31,7 @@ let Event = create({ if (event.type == "m.room.message") { let msgtype = event.content.msgtype; - let formattedEvent = parseEvent(event); + let formattedEvent = parseEvent(event); /* FIXME: Specify context */ let parsedReply = formattedEvent.parsedReply; if (parsedReply.isReply) { @@ -44,7 +43,7 @@ let Event = create({ // fall back on content? } else { repliedUser = this.props.client.getUser(repliedEvent.event.sender); - shortText = parseEvent(repliedEvent.event); + shortText = parseEvent(repliedEvent.event); /* FIXME: Specify context */ if (shortText.html) { shortText = ; } else { @@ -75,7 +74,7 @@ let Event = create({ } }); -function parseEvent(event, context) { +function parseEvent(event, _context) { // context can be either 'main' or 'reply' let body = event.content.body; let html = false; diff --git a/src/components/events/image.js b/src/components/events/image.js index 96c8f19..ef0ca0a 100644 --- a/src/components/events/image.js +++ b/src/components/events/image.js @@ -1,14 +1,9 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); -const defaultValue = require('default-value'); const mediaLib = require('../../lib/media.js'); -const Text = require('./text.js'); - let Event = create({ displayName: "m.image", @@ -20,10 +15,6 @@ let Event = create({ return mediaLib.parseEvent(this.props.client, event, 1000, 1000); }, - updateSize: function(e) { - console.log("image was loaded"); - }, - render: function() { let event = this.props.event; diff --git a/src/components/events/state.js b/src/components/events/state.js index 7700bc8..b1651a4 100644 --- a/src/components/events/state.js +++ b/src/components/events/state.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); let Event = create({ diff --git a/src/components/events/text.js b/src/components/events/text.js index 4ac7dde..edb3590 100644 --- a/src/components/events/text.js +++ b/src/components/events/text.js @@ -1,10 +1,6 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); - -const riot = require('../../lib/riot-utils.js'); let Event = create({ displayName: "m.text", diff --git a/src/components/events/user.js b/src/components/events/user.js index fc37d05..cbfa08f 100644 --- a/src/components/events/user.js +++ b/src/components/events/user.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); const jdenticon = require('jdenticon'); diff --git a/src/components/events/video.js b/src/components/events/video.js index b0d6d79..c3cd657 100644 --- a/src/components/events/video.js +++ b/src/components/events/video.js @@ -1,14 +1,9 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); -const defaultValue = require('default-value'); const mediaLib = require('../../lib/media.js'); -const Text = require('./text.js'); - let Event = create({ displayName: "m.video", diff --git a/src/components/fileUpload.js b/src/components/fileUpload.js index 1d0cf8a..29a62e1 100644 --- a/src/components/fileUpload.js +++ b/src/components/fileUpload.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); let fileUpload = create({ diff --git a/src/components/filterList.js b/src/components/filterList.js index 6ba4e4d..d5e0021 100644 --- a/src/components/filterList.js +++ b/src/components/filterList.js @@ -1,8 +1,6 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); const debounce = require('debounce'); let FilterList = create({ @@ -39,7 +37,7 @@ let FilterList = create({ render: function() { let keys = Object.keys(this.props.items); - let items = keys.map((itemKey, id) => { + let items = keys.map((itemKey) => { let item = this.props.items[itemKey]; let props = { selected: this.state.selection == itemKey, diff --git a/src/components/info.js b/src/components/info.js index 54bf3b9..6faaf2e 100644 --- a/src/components/info.js +++ b/src/components/info.js @@ -1,8 +1,6 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); let info = create({ displayName: "Info", diff --git a/src/components/input.js b/src/components/input.js index abc6ac9..28c1da4 100644 --- a/src/components/input.js +++ b/src/components/input.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); const Promise = require('bluebird'); const colorConvert = require('color-convert'); @@ -108,6 +107,7 @@ let input = create({ let additionalPromise; if (mimeType.startsWith("image/") || mimeType.startsWith("video/")) { function elementToThumbnail(element) { + /* FIXME: Get rid of `new Promise`, replace with Promise.try */ return new Promise((resolve, reject) => { riot.createThumbnail(element, element.width, @@ -116,7 +116,7 @@ let input = create({ ) .catch((error) => { console.error("neo: error getting thumbnail", error); - reject(); + reject(error); }) .then((thumbResult) => { return client.uploadContent(thumbResult.thumbnail, {onlyContentUri: false}); @@ -174,7 +174,8 @@ let input = create({ msgtype: "m.text" }; content = this.sendReply(content); - this.props.client.sendEvent(this.props.roomId, "m.room.message", content, (err, res) => { + /* FIXME: Promisify */ + this.props.client.sendEvent(this.props.roomId, "m.room.message", content, (err, _res) => { if (err != null) { console.log(err); } @@ -191,7 +192,8 @@ let input = create({ content = this.sendReply(content); - this.props.client.sendEvent(this.props.roomId, "m.room.message", content, (err, res) => { + /* FIXME: Promisify */ + this.props.client.sendEvent(this.props.roomId, "m.room.message", content, (err, _res) => { console.log(err); }); }, diff --git a/src/components/loading.js b/src/components/loading.js index 8056a74..9d820ed 100644 --- a/src/components/loading.js +++ b/src/components/loading.js @@ -1,6 +1,5 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); let Loading = create({ diff --git a/src/components/sidebar.js b/src/components/sidebar.js index b90d571..baa5d97 100644 --- a/src/components/sidebar.js +++ b/src/components/sidebar.js @@ -1,9 +1,6 @@ 'use strict'; const React = require('react'); -const ReactDOM = require('react-dom'); const create = require('create-react-class'); -const Promise = require('bluebird'); -const debounce = require('debounce'); const jdenticon = require('jdenticon'); const FilterList = require('./filterList.js'); diff --git a/src/lib/media.js b/src/lib/media.js index d362ed0..be1175c 100644 --- a/src/lib/media.js +++ b/src/lib/media.js @@ -1,3 +1,5 @@ +"use strict"; + // should be able to handle images, stickers, and video module.exports = { diff --git a/tests/lib/media.js b/tests/lib/media.js index 68d376b..0d1392b 100644 --- a/tests/lib/media.js +++ b/tests/lib/media.js @@ -1,3 +1,7 @@ +"use strict"; + +/* global describe, it */ + let assert = require('assert'); let urllib = require('url'); let querystring = require('querystring'); @@ -5,7 +9,8 @@ let querystring = require('querystring'); let mediaLib = require('../../lib/media.js'); let client = { - mxcUrlToHttp: function(url, w, h, method, allowDirectLinks) { + /* FIXME: Verify whether allowDirectLinks is used / expected to do anything by other code */ + mxcUrlToHttp: function(url, w, h, method, _allowDirectLinks) { let hs = "https://chat.privacytools.io"; let mxc = url.slice(6); if (w) { @@ -56,7 +61,7 @@ describe('media', function() { h: 1000, method: 'scale' }); - }), + }); it('event without thumbnail', function() { let mockEvent = JSON.parse(JSON.stringify(mockEventTemplate)); mockEvent.content.info.thumbnail_url = null;