From a1ba745b0d1e3f842e352942bb96f2c41c0c64c0 Mon Sep 17 00:00:00 2001 From: Yehoshua Sandler Date: Wed, 30 Apr 2025 16:07:57 -0500 Subject: [PATCH] lint: fix unused stuff --- components/motion-primitives/magnetic.tsx | 103 ++++++++++------------ src/app/(frontend)/page.tsx | 4 - src/components/Feed/UserFeed.tsx | 10 +-- src/components/Manage/CheckedOutBooks.tsx | 9 +- 4 files changed, 54 insertions(+), 72 deletions(-) diff --git a/components/motion-primitives/magnetic.tsx b/components/motion-primitives/magnetic.tsx index f9a04c6..ffa57ac 100644 --- a/components/motion-primitives/magnetic.tsx +++ b/components/motion-primitives/magnetic.tsx @@ -1,22 +1,17 @@ -'use client'; +'use client' -import React, { useState, useEffect, useRef } from 'react'; -import { - motion, - useMotionValue, - useSpring, - type SpringOptions, -} from 'motion/react'; +import React, { useState, useEffect, useRef } from 'react' +import { motion, useMotionValue, useSpring, type SpringOptions } from 'motion/react' -const SPRING_CONFIG = { stiffness: 26.7, damping: 4.1, mass: 0.2 }; +const SPRING_CONFIG = { stiffness: 26.7, damping: 4.1, mass: 0.2 } export type MagneticProps = { - children: React.ReactNode; - intensity?: number; - range?: number; - actionArea?: 'self' | 'parent' | 'global'; - springOptions?: SpringOptions; -}; + children: React.ReactNode + intensity?: number + range?: number + actionArea?: 'self' | 'parent' | 'global' + springOptions?: SpringOptions +} export function Magnetic({ children, @@ -25,76 +20,76 @@ export function Magnetic({ actionArea = 'self', springOptions = SPRING_CONFIG, }: MagneticProps) { - const [isHovered, setIsHovered] = useState(false); - const ref = useRef(null); + const [isHovered, setIsHovered] = useState(false) + const ref = useRef(null) - const x = useMotionValue(0); - const y = useMotionValue(0); + const x = useMotionValue(0) + const y = useMotionValue(0) - const springX = useSpring(x, springOptions); - const springY = useSpring(y, springOptions); + const springX = useSpring(x, springOptions) + const springY = useSpring(y, springOptions) useEffect(() => { const calculateDistance = (e: MouseEvent) => { if (ref.current) { - const rect = ref.current.getBoundingClientRect(); - const centerX = rect.left + rect.width / 2; - const centerY = rect.top + rect.height / 2; - const distanceX = e.clientX - centerX; - const distanceY = e.clientY - centerY; + const rect = ref.current.getBoundingClientRect() + const centerX = rect.left + rect.width / 2 + const centerY = rect.top + rect.height / 2 + const distanceX = e.clientX - centerX + const distanceY = e.clientY - centerY - const absoluteDistance = Math.sqrt(distanceX ** 2 + distanceY ** 2); + const absoluteDistance = Math.sqrt(distanceX ** 2 + distanceY ** 2) if (isHovered && absoluteDistance <= range) { - const scale = 1 - absoluteDistance / range; - x.set(distanceX * intensity * scale); - y.set(distanceY * intensity * scale); + const scale = 1 - absoluteDistance / range + x.set(distanceX * intensity * scale) + y.set(distanceY * intensity * scale) } else { - x.set(0); - y.set(0); + x.set(0) + y.set(0) } } - }; + } - document.addEventListener('mousemove', calculateDistance); + document.addEventListener('mousemove', calculateDistance) return () => { - document.removeEventListener('mousemove', calculateDistance); - }; - }, [ref, isHovered, intensity, range]); + document.removeEventListener('mousemove', calculateDistance) + } + }, [ref, isHovered, intensity, range, x, y]) useEffect(() => { if (actionArea === 'parent' && ref.current?.parentElement) { - const parent = ref.current.parentElement; + const parent = ref.current.parentElement - const handleParentEnter = () => setIsHovered(true); - const handleParentLeave = () => setIsHovered(false); + const handleParentEnter = () => setIsHovered(true) + const handleParentLeave = () => setIsHovered(false) - parent.addEventListener('mouseenter', handleParentEnter); - parent.addEventListener('mouseleave', handleParentLeave); + parent.addEventListener('mouseenter', handleParentEnter) + parent.addEventListener('mouseleave', handleParentLeave) return () => { - parent.removeEventListener('mouseenter', handleParentEnter); - parent.removeEventListener('mouseleave', handleParentLeave); - }; + parent.removeEventListener('mouseenter', handleParentEnter) + parent.removeEventListener('mouseleave', handleParentLeave) + } } else if (actionArea === 'global') { - setIsHovered(true); + setIsHovered(true) } - }, [actionArea]); + }, [actionArea]) const handleMouseEnter = () => { if (actionArea === 'self') { - setIsHovered(true); + setIsHovered(true) } - }; + } const handleMouseLeave = () => { if (actionArea === 'self') { - setIsHovered(false); - x.set(0); - y.set(0); + setIsHovered(false) + x.set(0) + y.set(0) } - }; + } return ( {children} - ); + ) } diff --git a/src/app/(frontend)/page.tsx b/src/app/(frontend)/page.tsx index 8df9a3b..d08f1df 100644 --- a/src/app/(frontend)/page.tsx +++ b/src/app/(frontend)/page.tsx @@ -6,13 +6,9 @@ import React from 'react' import UserFeed from '@/components/Feed/UserFeed' import { Book, Checkout, Repository } from '@/payload-types' import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs' -import { TextShimmer } from '@/components/ui/text-shimmer' import { LoginForm } from '@/components/login-form' import SearchBooks from '@/components/Search/SearchBooks' import Manage from '@/components/Manage/Manage' -import { Magnetic } from 'components/motion-primitives/magnetic' -import { Button } from '@/components/ui/button' -import Image from 'next/image' import HomeHero from '@/components/HomeHero' export default async function HomePage() { diff --git a/src/components/Feed/UserFeed.tsx b/src/components/Feed/UserFeed.tsx index 0a913f2..872af4f 100644 --- a/src/components/Feed/UserFeed.tsx +++ b/src/components/Feed/UserFeed.tsx @@ -3,17 +3,10 @@ import { getPayload, PaginatedDocs } from 'payload' import config from '@/payload.config' import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from '../ui/card' import Image from 'next/image' -import { BorderTrail } from 'components/motion-primitives/border-trail' import clsx from 'clsx' import Link from 'next/link' import { LoginForm } from '../login-form' -const stats = [ - { name: 'Outbound Loans', stat: '13' }, - { name: 'Active Holds', stat: '6' }, - { name: 'Hold Requests', stat: '3', shouldHighlight: true }, -] - type Props = { user?: User repos: PaginatedDocs | null @@ -140,8 +133,9 @@ const UserFeed = async (props: Props) => { {stats.map((s) => { return (
diff --git a/src/components/Manage/CheckedOutBooks.tsx b/src/components/Manage/CheckedOutBooks.tsx index 654d72e..4e6cbf3 100644 --- a/src/components/Manage/CheckedOutBooks.tsx +++ b/src/components/Manage/CheckedOutBooks.tsx @@ -31,12 +31,9 @@ const CheckedOutBooksList = (props: ListProps) => { const isReturningBook = useCallback((id: number) => id === returningBookId, [returningBookId]) - const handleReturnClick = useCallback( - (id: number) => { - setReturningBookId(id) - }, - [returningBookId], - ) + const handleReturnClick = useCallback((id: number) => { + setReturningBookId(id) + }, []) return (