From 3323f171e650a6ba1b4e132a571d197aab451f09 Mon Sep 17 00:00:00 2001 From: Eero Holmala Date: Sun, 2 Jun 2024 11:26:01 +0300 Subject: [PATCH] Frontend: Added button component with basic style, refactored Logo into svg/svg.tsx --- wretched-machines-frontend/src/app/page.tsx | 16 +++++++++------- .../src/app/tools/page.tsx | 14 ++++++++++++-- .../src/components/svg/svg.tsx | 15 +++++++++++++++ .../src/components/ui/button.tsx | 16 ++++++++++++++++ .../src/components/ui/content-box.tsx | 2 +- .../src/components/ui/navbar.tsx | 5 +++-- 6 files changed, 56 insertions(+), 12 deletions(-) create mode 100644 wretched-machines-frontend/src/components/svg/svg.tsx create mode 100644 wretched-machines-frontend/src/components/ui/button.tsx diff --git a/wretched-machines-frontend/src/app/page.tsx b/wretched-machines-frontend/src/app/page.tsx index dde265e..9dba462 100644 --- a/wretched-machines-frontend/src/app/page.tsx +++ b/wretched-machines-frontend/src/app/page.tsx @@ -4,14 +4,16 @@ import PageTitle from "@/components/ui/page-title"; export default function Home() { return ( -
+
- -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

-
- -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

-
+
+ +

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

+
+ +

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

+
+
); } diff --git a/wretched-machines-frontend/src/app/tools/page.tsx b/wretched-machines-frontend/src/app/tools/page.tsx index 6172e3c..7edbcc3 100644 --- a/wretched-machines-frontend/src/app/tools/page.tsx +++ b/wretched-machines-frontend/src/app/tools/page.tsx @@ -1,12 +1,22 @@ +"use client" + +import Button from "@/components/ui/button"; import ContentBox from "@/components/ui/content-box"; import PageTitle from "@/components/ui/page-title"; export default function Tools() { + + const handleClick = (e: React.MouseEvent): void => { + e.preventDefault(); + console.log("Clicked"); + } + return (
- -

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

+ +

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

+

Lorem ipsum dolor sit amet consectetur adipisicing elit. Iure deserunt esse illum pariatur libero provident maxime est aliquam labore odit, optio atque incidunt iusto debitis! Repudiandae quibusdam nulla accusantium quae.

diff --git a/wretched-machines-frontend/src/components/svg/svg.tsx b/wretched-machines-frontend/src/components/svg/svg.tsx new file mode 100644 index 0000000..d73865c --- /dev/null +++ b/wretched-machines-frontend/src/components/svg/svg.tsx @@ -0,0 +1,15 @@ +import { cn } from "@/lib/utils"; + +type LogoProps = { + className?: string +}; + +const Logo = (props: LogoProps) => Menu + +const HamburgerIcon = (props: LogoProps) => + + +export { + Logo, + HamburgerIcon + }; \ No newline at end of file diff --git a/wretched-machines-frontend/src/components/ui/button.tsx b/wretched-machines-frontend/src/components/ui/button.tsx new file mode 100644 index 0000000..d03c8dd --- /dev/null +++ b/wretched-machines-frontend/src/components/ui/button.tsx @@ -0,0 +1,16 @@ +import { cn } from "@/lib/utils"; + +type ButtonProps = { + className?: string; + children?: React.ReactNode; + onClick?: React.MouseEventHandler +}; + +const Button = (props: ButtonProps) => { + // TODO(Eero): Handle disabled, primary style, secondary style, hover, clicked, animation. + return( + + ); +} + +export default Button; \ No newline at end of file diff --git a/wretched-machines-frontend/src/components/ui/content-box.tsx b/wretched-machines-frontend/src/components/ui/content-box.tsx index 1c04fdc..bed9a78 100644 --- a/wretched-machines-frontend/src/components/ui/content-box.tsx +++ b/wretched-machines-frontend/src/components/ui/content-box.tsx @@ -7,7 +7,7 @@ interface ContentBoxProps { const ContentBox = (props: ContentBoxProps)=>{ return( -
+
{props.title}
{props.children} diff --git a/wretched-machines-frontend/src/components/ui/navbar.tsx b/wretched-machines-frontend/src/components/ui/navbar.tsx index 69ec604..b4878f2 100644 --- a/wretched-machines-frontend/src/components/ui/navbar.tsx +++ b/wretched-machines-frontend/src/components/ui/navbar.tsx @@ -1,5 +1,6 @@ import Link from "next/link"; import { cn } from "@/lib/utils" +import { HamburgerIcon, Logo } from "@/components/svg/svg"; const Break = ()=>
@@ -39,12 +40,12 @@ const Navbar = ()=>{