From 88f92bc0d677e117ebaca2efb07a121effbfd6c3 Mon Sep 17 00:00:00 2001 From: Tom Butcher Date: Tue, 1 Apr 2025 22:57:28 +0100 Subject: [PATCH] Fixed linting issues --- src/App.jsx | 6 +++--- src/components/TurnstileModal.jsx | 7 +++++++ src/main.jsx | 1 - src/utils/CacheReloadView.jsx | 2 +- src/views/BlogView.jsx | 8 +++++++- src/views/BlogsView.jsx | 7 ++++++- src/views/CVView.jsx | 7 ++++++- src/views/ContactView.jsx | 10 ++++++++-- src/views/MainView.jsx | 10 +++++----- src/views/NotFoundView.jsx | 6 +++++- src/views/SocialsView.jsx | 8 ++++++-- 11 files changed, 54 insertions(+), 18 deletions(-) diff --git a/src/App.jsx b/src/App.jsx index 363d47e..585d635 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,5 +1,5 @@ -import React, { useState, useEffect } from "react"; -import { Layout, Space, Spin } from "antd"; +import { useState, useEffect } from "react"; +import { Layout, Space } from "antd"; import { useLocation, useNavigate } from "react-router-dom"; import { AnimatePresence, motion } from "framer-motion"; import ParticlesBackground from "./components/ParticlesBackground"; @@ -14,7 +14,7 @@ import ExperienceView from "./views/ExperienceView"; import BlogsView from "./views/BlogsView"; import BlogView from "./views/BlogView"; import CacheReloadView from "./utils/CacheReloadView"; -import { LinkOutlined, UserOutlined, LoadingOutlined } from "@ant-design/icons"; +import { LoadingOutlined } from "@ant-design/icons"; const { Content } = Layout; const { Footer } = Layout; diff --git a/src/components/TurnstileModal.jsx b/src/components/TurnstileModal.jsx index 9cbf412..edb0b00 100644 --- a/src/components/TurnstileModal.jsx +++ b/src/components/TurnstileModal.jsx @@ -1,3 +1,4 @@ +import PropTypes from "prop-types"; import { useState } from "react"; import { Modal } from "antd"; import Turnstile from "react-turnstile"; @@ -25,4 +26,10 @@ const TurnstileModal = ({ open, onClose, onSuccess }) => { ); }; +TurnstileModal.propTypes = { + open: PropTypes.bool.isRequired, + onClose: PropTypes.func.isRequired, + onSuccess: PropTypes.func.isRequired, +}; + export default TurnstileModal; diff --git a/src/main.jsx b/src/main.jsx index 9c6c4e0..b15893c 100644 --- a/src/main.jsx +++ b/src/main.jsx @@ -1,4 +1,3 @@ -import React from "react"; import ReactGA from "react-ga4"; import { BrowserRouter } from "react-router-dom"; import { StrictMode } from "react"; diff --git a/src/utils/CacheReloadView.jsx b/src/utils/CacheReloadView.jsx index c208ff8..a0ea8a6 100644 --- a/src/utils/CacheReloadView.jsx +++ b/src/utils/CacheReloadView.jsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect } from "react"; +import { useState, useEffect } from "react"; import { useMediaQuery } from "react-responsive"; import { Card, Flex, message } from "antd"; import { LoadingOutlined } from "@ant-design/icons"; diff --git a/src/views/BlogView.jsx b/src/views/BlogView.jsx index c025f2f..e3e9d35 100644 --- a/src/views/BlogView.jsx +++ b/src/views/BlogView.jsx @@ -1,4 +1,5 @@ -import React, { useState, useEffect } from "react"; +import PropTypes from "prop-types"; +import { useState, useEffect } from "react"; import { useMediaQuery } from "react-responsive"; import { Tag, Button, Card, Flex, message } from "antd"; import { LoadingOutlined } from "@ant-design/icons"; @@ -140,4 +141,9 @@ const BlogView = ({ setCurrentView, slug }) => { ); }; +BlogView.propTypes = { + setCurrentView: PropTypes.func.isRequired, + slug: PropTypes.string.isRequired, +}; + export default BlogView; diff --git a/src/views/BlogsView.jsx b/src/views/BlogsView.jsx index 9ae8e8d..99fee1a 100644 --- a/src/views/BlogsView.jsx +++ b/src/views/BlogsView.jsx @@ -1,4 +1,5 @@ -import React, { useState, useEffect } from "react"; +import PropTypes from "prop-types"; +import { useState, useEffect } from "react"; import { useMediaQuery } from "react-responsive"; import { Tag, Button, Card, Flex, message } from "antd"; import { LoadingOutlined } from "@ant-design/icons"; @@ -201,4 +202,8 @@ const BlogsView = ({ setCurrentView }) => { ); }; +BlogsView.propTypes = { + setCurrentView: PropTypes.func.isRequired, +}; + export default BlogsView; diff --git a/src/views/CVView.jsx b/src/views/CVView.jsx index dcc4950..6b5fdfd 100644 --- a/src/views/CVView.jsx +++ b/src/views/CVView.jsx @@ -1,7 +1,8 @@ -import React from "react"; +import PropTypes from "prop-types"; import { useMediaQuery } from "react-responsive"; import { Form, Input, Button, Card, Flex } from "antd"; import { FilePdfOutlined, CloudDownloadOutlined } from "@ant-design/icons"; + const CVView = ({ setCurrentView }) => { const onFinish = (values) => { console.log("Form values:", values); @@ -110,4 +111,8 @@ const CVView = ({ setCurrentView }) => { ); }; +CVView.propTypes = { + setCurrentView: PropTypes.func.isRequired, +}; + export default CVView; diff --git a/src/views/ContactView.jsx b/src/views/ContactView.jsx index 0f54339..ed3e362 100644 --- a/src/views/ContactView.jsx +++ b/src/views/ContactView.jsx @@ -1,8 +1,10 @@ -import React, { useState } from "react"; +import PropTypes from "prop-types"; +import { useState } from "react"; import { useMediaQuery } from "react-responsive"; import { Form, Input, Button, Card, Flex, message } from "antd"; import TurnstileModal from "../components/TurnstileModal"; import { ArrowRightOutlined } from "@ant-design/icons"; + const ContactView = ({ setCurrentView }) => { const isMobile = useMediaQuery({ maxWidth: 600 }); const [turnstileOpen, setTurnstileOpen] = useState(false); @@ -30,7 +32,7 @@ const ContactView = ({ setCurrentView }) => { message.error("Verification failed. Try again."); } } catch (error) { - message.error("Error sending request."); + message.error(`Error sending request: ${error.message}`); } }; return ( @@ -106,4 +108,8 @@ const ContactView = ({ setCurrentView }) => { ); }; +ContactView.propTypes = { + setCurrentView: PropTypes.func.isRequired, +}; + export default ContactView; diff --git a/src/views/MainView.jsx b/src/views/MainView.jsx index 202cdba..c39eebc 100644 --- a/src/views/MainView.jsx +++ b/src/views/MainView.jsx @@ -1,7 +1,5 @@ -// views/MainView.jsx -import React from "react"; +import PropTypes from "prop-types"; import { Button, Flex, Dropdown, message } from "antd"; -import { UserOutlined } from "@ant-design/icons"; import { useMediaQuery } from "react-responsive"; import { useKeycloak } from "../utils/KeycloakProvider"; @@ -9,8 +7,6 @@ const MainView = ({ setCurrentView }) => { const isMobile = useMediaQuery({ maxWidth: 600 }); const { isAuthenticated, user, keycloak } = useKeycloak(); - const [messageApi, contextHolder] = message.useMessage(); - const authItems = [ { label: user?.username, @@ -176,4 +172,8 @@ const MainView = ({ setCurrentView }) => { ); }; +MainView.propTypes = { + setCurrentView: PropTypes.func.isRequired, +}; + export default MainView; diff --git a/src/views/NotFoundView.jsx b/src/views/NotFoundView.jsx index 57bd7d8..8ec0b44 100644 --- a/src/views/NotFoundView.jsx +++ b/src/views/NotFoundView.jsx @@ -1,4 +1,4 @@ -import React from "react"; +import PropTypes from "prop-types"; import { Button, Flex } from "antd"; const NotFoundView = ({ setCurrentView }) => { @@ -14,4 +14,8 @@ const NotFoundView = ({ setCurrentView }) => { ); }; +NotFoundView.propTypes = { + setCurrentView: PropTypes.func.isRequired, +}; + export default NotFoundView; diff --git a/src/views/SocialsView.jsx b/src/views/SocialsView.jsx index 828121b..cf79505 100644 --- a/src/views/SocialsView.jsx +++ b/src/views/SocialsView.jsx @@ -1,7 +1,7 @@ -import React, { useState } from "react"; +import PropTypes from "prop-types"; +import { useState } from "react"; import { useMediaQuery } from "react-responsive"; import { Flex, Spin } from "antd"; - import { LoadingOutlined } from "@ant-design/icons"; import { useEffect } from "react"; import * as FaIcons from "react-icons/fa6"; // Import all FA6 icons dynamically @@ -100,4 +100,8 @@ const SocialsView = ({ referrer }) => { ); }; +SocialsView.propTypes = { + referrer: PropTypes.string, // Adjust type as needed +}; + export default SocialsView;