-
-
-
+
+
+ OnlyDevs
+ A social network for you the nerdy developer !
+
+
+
+
-
);
-}
+}
\ No newline at end of file
diff --git a/src/components/header.tsx b/src/components/header.tsx
index 57db108..88cd45f 100644
--- a/src/components/header.tsx
+++ b/src/components/header.tsx
@@ -1,12 +1,13 @@
import React from 'react'
import {Button} from "@/components/ui/button";
import {ThemeSelector} from "@/components/theme-selector";
+import Link from "next/link";
export const Header = () => {
return (
diff --git a/src/components/login-form.tsx b/src/components/login-form.tsx
new file mode 100644
index 0000000..f896569
--- /dev/null
+++ b/src/components/login-form.tsx
@@ -0,0 +1,99 @@
+"use client";
+import React from "react";
+import {Label} from "@/components/ui/label";
+import {Input} from "@/components/ui/input";
+import {cn} from "@/lib/utils";
+import {User} from "lucide-react";
+
+export function LoginForm() {
+ const handleSubmit = (e: React.FormEvent
) => {
+ e.preventDefault();
+ console.log("Form submitted");
+ };
+ return (
+
+
+ Welcome to OnlyDevs
+
+
+ Login to aceternity if you can because we don't have a login flow
+ yet
+
+
+
+
+ );
+}
+
+const BottomGradient = () => {
+ return (
+ <>
+
+
+ >
+ );
+};
+
+const LabelInputContainer = ({
+ children,
+ className,
+ }: {
+ children: React.ReactNode;
+ className?: string;
+}) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/src/components/register-form.tsx b/src/components/register-form.tsx
new file mode 100644
index 0000000..e7d03db
--- /dev/null
+++ b/src/components/register-form.tsx
@@ -0,0 +1,94 @@
+"use client";
+import React from "react";
+import {Label} from "@/components/ui/label";
+import {Input} from "@/components/ui/input";
+import {cn} from "@/lib/utils";
+import {User} from "lucide-react";
+
+export function RegisterForm() {
+ const handleSubmit = (e: React.FormEvent) => {
+ e.preventDefault();
+ console.log("Form submitted");
+ };
+ return (
+
+
+ Create an account
+
+
+ By creating an account you can discuss on our platform.
+
+
+
+
+ );
+}
+
+const BottomGradient = () => {
+ return (
+ <>
+
+
+ >
+ );
+};
+
+const LabelInputContainer = ({
+ children,
+ className,
+ }: {
+ children: React.ReactNode;
+ className?: string;
+}) => {
+ return (
+
+ {children}
+
+ );
+};
diff --git a/src/components/theme-selector.tsx b/src/components/theme-selector.tsx
index 05efad5..3a17890 100644
--- a/src/components/theme-selector.tsx
+++ b/src/components/theme-selector.tsx
@@ -20,14 +20,14 @@ export function ThemeSelector() {
//TODO i18n
return (
-
+
-
+
Theme de couleur
diff --git a/src/components/ui/input.tsx b/src/components/ui/input.tsx
new file mode 100644
index 0000000..677d05f
--- /dev/null
+++ b/src/components/ui/input.tsx
@@ -0,0 +1,25 @@
+import * as React from "react"
+
+import { cn } from "@/lib/utils"
+
+export interface InputProps
+ extends React.InputHTMLAttributes {}
+
+const Input = React.forwardRef(
+ ({ className, type, ...props }, ref) => {
+ return (
+
+ )
+ }
+)
+Input.displayName = "Input"
+
+export { Input }
diff --git a/src/components/ui/label.tsx b/src/components/ui/label.tsx
new file mode 100644
index 0000000..5341821
--- /dev/null
+++ b/src/components/ui/label.tsx
@@ -0,0 +1,26 @@
+"use client"
+
+import * as React from "react"
+import * as LabelPrimitive from "@radix-ui/react-label"
+import { cva, type VariantProps } from "class-variance-authority"
+
+import { cn } from "@/lib/utils"
+
+const labelVariants = cva(
+ "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
+)
+
+const Label = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef &
+ VariantProps
+>(({ className, ...props }, ref) => (
+
+))
+Label.displayName = LabelPrimitive.Root.displayName
+
+export { Label }