diff --git a/.eslintrc.json b/.eslintrc.json
index bb8b1c099d4..52cba9912ef 100755
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,3 +1,29 @@
{
- "extends": ["next/core-web-vitals", "plugin:storybook/recommended"]
+ "env": {
+ "browser": true,
+ "es6": true,
+ "node": true
+ },
+ "extends": [
+ "eslint:recommended",
+ "plugin:react/recommended",
+ "next",
+ "plugin:@next/next/recommended",
+ "plugin:storybook/recommended"
+ ],
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true
+ },
+ "ecmaVersion": 2020,
+ "sourceType": "module"
+ },
+ "plugins": [
+ "react"
+ ],
+ "settings": {
+ "react": {
+ "version": "detect"
+ }
+ }
}
diff --git a/components/Alert.js b/components/Alert.js
index f1aa2509d0c..ca66188681a 100644
--- a/components/Alert.js
+++ b/components/Alert.js
@@ -14,7 +14,6 @@ export default function alert({ type, message }) {
{message}
);
- break;
case "error":
return (
{message}
);
- break;
case "warning":
return (
{message}
);
- break;
case "info":
return (
{message}
);
- break;
}
}
diff --git a/components/Button.js b/components/Button.js
index 70ecb30125e..6052d8e944f 100644
--- a/components/Button.js
+++ b/components/Button.js
@@ -1,8 +1,6 @@
import Link from "./Link";
export default function Button({
- icon,
- text,
primary = false,
disable,
children,
diff --git a/components/form/DropDown.js b/components/form/DropDown.js
index d9030a2f771..1376dc58d46 100644
--- a/components/form/DropDown.js
+++ b/components/form/DropDown.js
@@ -20,5 +20,5 @@ export default function DropdownMenu({ eventType, handleEventTypeChange, options
);
-};
+}
diff --git a/components/map/Clusters.js b/components/map/Clusters.js
index e9920fe7a84..1d64cfc2fa8 100644
--- a/components/map/Clusters.js
+++ b/components/map/Clusters.js
@@ -1,4 +1,5 @@
import { useState } from "react";
+import L from "leaflet";
import { Marker, useMap } from "react-leaflet";
import useSupercluster from "use-supercluster";
import UserMarker from "./UserMarker";
diff --git a/components/map/Map.js b/components/map/Map.js
index af1564ab7c3..34b05ae0121 100644
--- a/components/map/Map.js
+++ b/components/map/Map.js
@@ -1,5 +1,4 @@
import { MapContainer, TileLayer } from "react-leaflet";
-import Link from "@components/Link";
import Clusters from "./Clusters";
import "leaflet/dist/leaflet.css";
diff --git a/components/map/UserMarker.js b/components/map/UserMarker.js
index 1c92ad0e344..8b3167b6c80 100644
--- a/components/map/UserMarker.js
+++ b/components/map/UserMarker.js
@@ -1,3 +1,4 @@
+import L from "leaflet";
import { Marker, Popup } from "react-leaflet";
import { ReactMarkdown } from "react-markdown/lib/react-markdown";
import Link from "@components/Link";
diff --git a/pages/api/auth/[...nextauth].js b/pages/api/auth/[...nextauth].js
index b94be47d312..9d0ee8b4e5e 100644
--- a/pages/api/auth/[...nextauth].js
+++ b/pages/api/auth/[...nextauth].js
@@ -26,7 +26,7 @@ export const authOptions = {
strategy: "jwt",
},
callbacks: {
- async redirect({ url, baseUrl }) {
+ async redirect({ baseUrl }) {
return `${baseUrl}/account/statistics`;
},
async jwt({ token, account, profile }) {
@@ -38,7 +38,7 @@ export const authOptions = {
}
return token;
},
- async session({ session, token, user, profile }) {
+ async session({ session, token }) {
// Send properties to the client, like an access_token and user id from a provider.
session.accessToken = token.accessToken;
session.user.id = token.id;
diff --git a/pages/api/auth/db-adapter.js b/pages/api/auth/db-adapter.js
index 2fc4260d883..2227624e895 100644
--- a/pages/api/auth/db-adapter.js
+++ b/pages/api/auth/db-adapter.js
@@ -2,7 +2,7 @@ import { User, Account, Session, VerificationToken } from "@models/index"
/** @return { import("next-auth/adapters").Adapter } */
-export default function DbAdapter(client, options = {}) {
+export default function DbAdapter(client) {
return {
async createUser(data) {
await client();
diff --git a/pages/api/discover/tags.js b/pages/api/discover/tags.js
index 4ea60dcadd1..9972dc4b988 100644
--- a/pages/api/discover/tags.js
+++ b/pages/api/discover/tags.js
@@ -20,9 +20,7 @@ export async function getTags(location = false) {
tags: { $exists: true },
"location.provided": {
$exists: true,
- $ne: null,
- $ne: "unknown",
- $ne: "remote",
+ $nin: [null, "unknown", "remote"],
},
"location.name": { $ne: "unknown" },
},
diff --git a/pages/api/profiles/[username]/links/[url].js b/pages/api/profiles/[username]/links/[url].js
index 3933cb73d51..722b32b864c 100644
--- a/pages/api/profiles/[username]/links/[url].js
+++ b/pages/api/profiles/[username]/links/[url].js
@@ -102,7 +102,7 @@ export default async function handler(req, res) {
{ upsert: true }
);
} catch (e) {
- logger.error(e, `failed incrementing platform stats for ${data}`);
+ logger.error(e, `failed incrementing platform stats for ${date}`);
}
return res.status(201).redirect(decodeURIComponent(url));
diff --git a/pages/api/statistics/totals.js b/pages/api/statistics/totals.js
index bf478d9924f..29b2d1f4aaf 100644
--- a/pages/api/statistics/totals.js
+++ b/pages/api/statistics/totals.js
@@ -1,6 +1,3 @@
-import fs from "fs";
-import path from "path";
-
import connectMongo from "@config/mongo";
import logger from "@config/logger";
diff --git a/pages/api/system/reload.js b/pages/api/system/reload.js
index fdd9631c7b5..4437a0d9a4f 100644
--- a/pages/api/system/reload.js
+++ b/pages/api/system/reload.js
@@ -311,13 +311,17 @@ function findOneByUsernameFull(data) {
});
data = { ...data, testimonials: allTestimonials };
- } catch (e) {}
+ } catch (e) {
+ logger.error(e);
+ }
const filePathEvents = path.join(process.cwd(), "data", username, "events");
let eventFiles = [];
try {
eventFiles = fs.readdirSync(filePathEvents);
- } catch (e) {}
+ } catch (e) {
+ logger.error(e);
+ }
const events = eventFiles.flatMap((filename) => {
try {
diff --git a/pages/auth/signin.js b/pages/auth/signin.js
index 67f4f45bccf..1725a2f460d 100644
--- a/pages/auth/signin.js
+++ b/pages/auth/signin.js
@@ -5,7 +5,6 @@ import { signIn } from "next-auth/react";
import BlankLayout from "@components/layouts/BlankLayout";
import { authOptions } from "pages/api/auth/[...nextauth]";
import { BsGithub } from "react-icons/bs";
-import { AiOutlineLock } from "react-icons/ai";
import Button from "@components/Button";
import Link from "@components/Link";
diff --git a/pages/events.js b/pages/events.js
index 7e18ac8680d..59c246413f4 100644
--- a/pages/events.js
+++ b/pages/events.js
@@ -11,7 +11,7 @@ import { EventTabs } from "@components/event/EventTabs";
import PageHead from "@components/PageHead";
import Badge from "@components/Badge";
-export async function getServerSideProps(context) {
+export async function getServerSideProps() {
let events = await getEvents();
return {
diff --git a/pages/playground.js b/pages/playground.js
index 8286f9f2ca5..4bd12df4b46 100644
--- a/pages/playground.js
+++ b/pages/playground.js
@@ -48,7 +48,6 @@ export default function Playground({BASE_URL}) {
return true;
} catch (err) {
setErrMsg(err.toString());
- setError(true);
setSuccessMsg("");
setShowNotification(true);
setTimeout(() => setShowNotification(false), 1500);