From d75021595281ff84720016d4c3238aa8361aedbd Mon Sep 17 00:00:00 2001 From: Anuarbek Zhakhangir Date: Fri, 18 Jul 2025 16:31:18 +0900 Subject: [PATCH] feat: enhance Button component with disabled state and add CoverSoon component --- src/components/Button.tsx | 26 +++++++++++++++++--------- src/components/Cover.tsx | 27 +++++++++++++++++++++++++++ src/pages/index.tsx | 24 ++---------------------- src/pages/preview.tsx | 29 +++++++++++++++++++++++++++++ src/styles/globals.css | 1 + 5 files changed, 76 insertions(+), 31 deletions(-) create mode 100644 src/pages/preview.tsx diff --git a/src/components/Button.tsx b/src/components/Button.tsx index 2968111..e35d4cc 100644 --- a/src/components/Button.tsx +++ b/src/components/Button.tsx @@ -6,12 +6,17 @@ interface ButtonProps { className?: string; variant?: "default" | "blue" | "blue_alt"; shadowEnabled?: boolean; + disabled?: boolean; } export default function Button(props: ButtonProps) { - const { variant = "default", shadowEnabled = true } = props; + const { variant = "default", shadowEnabled = true, disabled = false } = props; const getButtonStyles = () => { + if (disabled) { + return "bg-gray-300 text-gray-500 cursor-not-allowed"; + } + switch (variant) { case "blue": return "bg-[#1068B0] text-white hover:bg-[#0e5a9c]"; @@ -25,7 +30,7 @@ export default function Button(props: ButtonProps) { return (
{/* Shadow element */} - {shadowEnabled && ( + {shadowEnabled && !disabled && (
{ const shadow = e.currentTarget .previousElementSibling as HTMLElement; @@ -72,7 +80,7 @@ export default function Button(props: ButtonProps) { : undefined } onMouseLeave={ - shadowEnabled + shadowEnabled && !disabled ? (e) => { const shadow = e.currentTarget .previousElementSibling as HTMLElement; @@ -86,7 +94,7 @@ export default function Button(props: ButtonProps) { : undefined } onMouseDown={ - shadowEnabled + shadowEnabled && !disabled ? (e) => { const shadow = e.currentTarget .previousElementSibling as HTMLElement; @@ -100,7 +108,7 @@ export default function Button(props: ButtonProps) { : undefined } onMouseUp={ - shadowEnabled + shadowEnabled && !disabled ? (e) => { const shadow = e.currentTarget .previousElementSibling as HTMLElement; diff --git a/src/components/Cover.tsx b/src/components/Cover.tsx index b0d9adc..6ca48d9 100644 --- a/src/components/Cover.tsx +++ b/src/components/Cover.tsx @@ -119,4 +119,31 @@ function Cover() { ); } +function CoverSoon() { + return ( +
+
+ {/* Top row with ФЕСТИВАЛЬ and date box */} +
+ ФЕСТИВАЛЬ + +
+ + ТЕХНИЧЕСКИХ + + ВИДОВ СПОРТА +
+ +
+ +
+
+ ); +} + +export { CoverSoon }; + export default Cover; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index ac8599d..0044c55 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,29 +1,9 @@ -import Activities from "@/components/Activities"; -import Cover from "@/components/Cover"; -import Events from "@/components/Events"; -import Footer from "@/components/Footer"; -import Info from "@/components/Info"; -import Map from "@/components/Map"; -import Navbar from "@/components/Navbar"; -import Partners from "@/components/Partners"; -import Scheme from "@/components/Scheme"; -import Video from "@/components/Video"; +import { CoverSoon } from "@/components/Cover"; export default function Home() { return ( <> - -
- - -
-