From 210f50f6f20ac71f506f1d54ba3b2fae5ad7152c Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Fri, 3 May 2024 09:57:56 +1000 Subject: [PATCH] simplify store theming --- src/interface/components/store/card.tsx | 154 ---------------------- src/interface/components/store/header.tsx | 2 +- src/interface/pages/Store.tsx | 21 +-- 3 files changed, 12 insertions(+), 165 deletions(-) delete mode 100644 src/interface/components/store/card.tsx diff --git a/src/interface/components/store/card.tsx b/src/interface/components/store/card.tsx deleted file mode 100644 index 0b4f1e6d..00000000 --- a/src/interface/components/store/card.tsx +++ /dev/null @@ -1,154 +0,0 @@ -"use client"; - -import { cn } from "../../utils/cn"; -import React, { - createContext, - useState, - useContext, - useRef, - useEffect, -} from "react"; - -const MouseEnterContext = createContext< - [boolean, React.Dispatch>] | undefined ->(undefined); - -export const CardContainer = ({ - children, - className, - containerClassName, -}: { - children?: React.ReactNode; - className?: string; - containerClassName?: string; -}) => { - const containerRef = useRef(null); - const [isMouseEntered, setIsMouseEntered] = useState(false); - - const handleMouseMove = (e: React.MouseEvent) => { - if (!containerRef.current) return; - const { left, top, width, height } = - containerRef.current.getBoundingClientRect(); - const x = (e.clientX - left - width / 2) / 25; - const y = (e.clientY - top - height / 2) / 25; - containerRef.current.style.transform = `rotateY(${x}deg) rotateX(${y}deg)`; - }; - - const handleMouseEnter = (_: React.MouseEvent) => { - setIsMouseEntered(true); - if (!containerRef.current) return; - }; - - const handleMouseLeave = (_: React.MouseEvent) => { - if (!containerRef.current) return; - setIsMouseEntered(false); - containerRef.current.style.transform = `rotateY(0deg) rotateX(0deg)`; - }; - return ( - -
-
- {children} -
-
-
- ); -}; - -export const CardBody = ({ - children, - className, -}: { - children: React.ReactNode; - className?: string; -}) => { - return ( -
*]:[transform-style:preserve-3d]", - className - )} - > - {children} -
- ); -}; - -export const CardItem = ({ - as: Tag = "div", - children, - className, - translateX = 0, - translateY = 0, - translateZ = 0, - rotateX = 0, - rotateY = 0, - rotateZ = 0, - ...rest -}: { - as?: React.ElementType; - children: React.ReactNode; - className?: string; - translateX?: number | string; - translateY?: number | string; - translateZ?: number | string; - rotateX?: number | string; - rotateY?: number | string; - rotateZ?: number | string; - [key: string]: any; -}) => { - const ref = useRef(null); - const [isMouseEntered] = useMouseEnter(); - - useEffect(() => { - handleAnimations(); - }, [isMouseEntered]); - - const handleAnimations = () => { - if (!ref.current) return; - if (isMouseEntered) { - ref.current.style.transform = `translateX(${translateX}px) translateY(${translateY}px) translateZ(${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) rotateZ(${rotateZ}deg)`; - } else { - ref.current.style.transform = `translateX(0px) translateY(0px) translateZ(0px) rotateX(0deg) rotateY(0deg) rotateZ(0deg)`; - } - }; - - return ( - - {children} - - ); -}; - -// Create a hook to use the context -export const useMouseEnter = () => { - const context = useContext(MouseEnterContext); - if (context === undefined) { - throw new Error("useMouseEnter must be used within a MouseEnterProvider"); - } - return context; -}; diff --git a/src/interface/components/store/header.tsx b/src/interface/components/store/header.tsx index d33d362c..9cd935ba 100644 --- a/src/interface/components/store/header.tsx +++ b/src/interface/components/store/header.tsx @@ -2,7 +2,7 @@ import logo from '../../../resources/icons/betterseqta-dark-full.png'; import logoDark from '../../../resources/icons/betterseqta-light-full.png'; export default function header({ searchTerm, setSearchTerm }: { searchTerm: string, setSearchTerm: (value: string) => void }) { - return
+ return
diff --git a/src/interface/pages/Store.tsx b/src/interface/pages/Store.tsx index 712babb0..0fab45b6 100644 --- a/src/interface/pages/Store.tsx +++ b/src/interface/pages/Store.tsx @@ -1,6 +1,5 @@ import { useEffect, useRef, useState } from 'react'; import { Swiper, SwiperSlide } from 'swiper/react'; -import { CardBody, CardContainer, CardItem } from '../components/store/card'; import { Autoplay } from 'swiper/modules'; import Header from '../components/store/header'; import { motion } from 'framer-motion'; @@ -96,18 +95,20 @@ const Store = () => {
-
+
{filteredThemes.map((theme, index) => (
-
-
- {theme.name} +
+
+ +
+ {theme.name} +
+

+ {theme.description} +

+
-

- {theme.description} -

Theme Preview