diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js
index 63a06de..d75a8c5 100644
--- a/frontend/.eslintrc.js
+++ b/frontend/.eslintrc.js
@@ -1,29 +1,30 @@
module.exports = {
- "env": {
- "browser": true,
- "es2021": true
+ env: {
+ browser: true,
+ es2021: true,
+ },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:react/recommended',
+ 'plugin:@typescript-eslint/recommended',
+ ],
+ parser: '@typescript-eslint/parser',
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
},
- "extends": [
- "eslint:recommended",
- "plugin:react/recommended",
- "plugin:@typescript-eslint/recommended"
+ ecmaVersion: 12,
+ sourceType: 'module',
+ },
+ plugins: ['react', '@typescript-eslint'],
+ settings: {
+ version: 'detect',
+ },
+ rules: {
+ 'react/react-in-jsx-scope': 'off',
+ '@typescript-eslint/no-unused-vars': [
+ 'warn',
+ { varsIgnorePattern: '^_', argsIgnorePattern: '^_' },
],
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true
- },
- "ecmaVersion": 12,
- "sourceType": "module"
- },
- "plugins": [
- "react",
- "@typescript-eslint"
- ],
- "settings": {
- "version": "detect"
- },
- "rules": {
- "react/react-in-jsx-scope": "off"
- }
+ },
};
diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx
index b860e20..adc06c8 100644
--- a/frontend/src/App.tsx
+++ b/frontend/src/App.tsx
@@ -4,7 +4,7 @@ import { Waveform } from './Waveform/Waveform';
const audioContext = new AudioContext();
-function App() {
+function App(): JSX.Element {
return (
diff --git a/frontend/src/Waveform/Thumbnails.tsx b/frontend/src/Waveform/Thumbnails.tsx
index 8032b6e..2779a5b 100644
--- a/frontend/src/Waveform/Thumbnails.tsx
+++ b/frontend/src/Waveform/Thumbnails.tsx
@@ -1,5 +1,5 @@
import { useState, useEffect, useRef } from 'react';
-import { CanvasLogicalWidth, CanvasLogicalHeight, MediaSet } from './Waveform';
+import { CanvasLogicalWidth, MediaSet } from './Waveform';
interface Props {
mediaSet: MediaSet;
@@ -13,7 +13,7 @@ enum State {
}
export const Thumbnails: React.FC
= ({ mediaSet, style }: Props) => {
- const [image, setImage] = useState(new Image());
+ const [image, _setImage] = useState(new Image());
const [state, setState] = useState(State.Loading);
const canvasRef = useRef(null);
diff --git a/frontend/src/Waveform/Waveform.tsx b/frontend/src/Waveform/Waveform.tsx
index 4fe874a..779effa 100644
--- a/frontend/src/Waveform/Waveform.tsx
+++ b/frontend/src/Waveform/Waveform.tsx
@@ -51,7 +51,7 @@ export const Waveform: React.FC = ({ audioContext }: Props) => {
const [mediaSet, setMediaSet] = useState(null);
const [currentTime, setCurrentTime] = useState(0);
// TODO: extract to player component.
- const [audio, setAudio] = useState(new Audio());
+ const [audio, _setAudio] = useState(new Audio());
const [zoomSettings, setZoomSettings] = useState(defaultZoomSettings);
const [waveformPeaks, setWaveformPeaks] = useState(null);
const [overviewPeaks, setOverviewPeaks] = useState(null);
diff --git a/frontend/src/reportWebVitals.ts b/frontend/src/reportWebVitals.ts
index 49a2a16..eb4be08 100644
--- a/frontend/src/reportWebVitals.ts
+++ b/frontend/src/reportWebVitals.ts
@@ -1,6 +1,6 @@
import { ReportHandler } from 'web-vitals';
-const reportWebVitals = (onPerfEntry?: ReportHandler) => {
+const reportWebVitals = (onPerfEntry?: ReportHandler): void => {
if (onPerfEntry && onPerfEntry instanceof Function) {
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
getCLS(onPerfEntry);