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);