diff --git a/ivette/.eslintrc.js b/ivette/.eslintrc.js index f6a5adc29a8aeed712841d38790ea3e622817dd7..3e4065c048a1906f5bb0b4f990ee3f72b52ff56c 100644 --- a/ivette/.eslintrc.js +++ b/ivette/.eslintrc.js @@ -102,7 +102,7 @@ module.exports = { "default-case": "off", "consistent-return": "off", // Allow modify properties of object passed in parameter - "no-param-reassign": [ "error", { "props": false } ], + "no-param-reassign": "error", //[ "error", { "props": false } ], // Disallow the use of var in favor of let and const "no-var": "error", // Do not favor default import diff --git a/ivette/src/dome/src/renderer/table/arrays.ts b/ivette/src/dome/src/renderer/table/arrays.ts index 38ea1c6e259e6d77335c511965aad5811c14fea4..5abe5992daa086172bd98a05b63c30ec72c72908 100644 --- a/ivette/src/dome/src/renderer/table/arrays.ts +++ b/ivette/src/dome/src/renderer/table/arrays.ts @@ -108,7 +108,8 @@ export class ArrayModel<Key, Row> return current; } - // Lazily compute table + // Lazily compute table ; modifies packed entries in place + /* eslint-disable no-param-reassign */ protected rebuild(): PACK<Key, Row>[] { const current = this.table; let filtered = 0; @@ -127,11 +128,12 @@ export class ArrayModel<Key, Row> } catch (err) { console.warn('[Dome] error when rebuilding table:', err); } - table.forEach((pack, index) => { pack.index = index; }); + table.forEach((packed, index) => { packed.index = index; }); this.table = table; this.filtered = filtered; return table; } + /* eslint-enable no-param-reassign */ // -------------------------------------------------------------------------- // --- Proxy diff --git a/ivette/src/dome/src/renderer/table/views.tsx b/ivette/src/dome/src/renderer/table/views.tsx index d4971b1cee2c3d006ee539b70830b1a66aca4327..671cc8f8438cd53b47aa12fd09bec96521b246ec 100644 --- a/ivette/src/dome/src/renderer/table/views.tsx +++ b/ivette/src/dome/src/renderer/table/views.tsx @@ -1000,6 +1000,7 @@ function makeResizers( const CSS_HEADER_HEIGHT = 22; const CSS_ROW_HEIGHT = 20; +// Modifies state in place function makeTable<Key, Row>( props: TableProps<Key, Row>, state: TableState<Key, Row>, @@ -1017,11 +1018,13 @@ function makeTable<Key, Row>( const columns = makeColumns(state, cprops); const resizers = makeResizers(state, cprops); + /* eslint-disable no-param-reassign */ state.rowCount = rowCount; if (state.width !== width) { state.width = width; setImmediate(state.forceUpdate); } + /* eslint-enable no-param-reassign */ return ( <div onKeyDown={state.onKeyDown}> @@ -1087,7 +1090,7 @@ function makeTable<Key, Row>( @template Key - unique identifiers of table entries. @template Row - data associated to each key in the table entries. -*/ + */ export function Table<Key, Row>(props: TableProps<Key, Row>) { diff --git a/ivette/src/dome/src/renderer/text/buffers.ts b/ivette/src/dome/src/renderer/text/buffers.ts index cd1e5c7b896898e71cf37cc75e7945b1d85a569a..f0a587f849fa9616c6add252a9533f632576fb8a 100644 --- a/ivette/src/dome/src/renderer/text/buffers.ts +++ b/ivette/src/dome/src/renderer/text/buffers.ts @@ -303,13 +303,14 @@ export class RichTextBuffer extends Emitter { } } - /** Lookup for the text markers associated with a marker identifier. */ + /** Lookup for the text markers associated with a marker identifier. + Remove the marked tags from the buffered tag array. */ findTextMarker(id: string): CodeMirror.TextMarker[] { this.doFlushText(); - this.bufferedTags.forEach((tg, idx, arr) => { + this.bufferedTags.forEach((tg, idx) => { if (tg?.id === id) { this.doMark(tg); - arr[idx] = undefined; + this.bufferedTags[idx] = undefined; } }); return this.textmarkers.get(id) ?? [];