diff --git a/package-lock.json b/package-lock.json index 94737ae..206d488 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,12 +10,14 @@ "dependencies": { "bootstrap": "^5.3.3", "bootstrap-icons": "^1.11.3", + "html5-qrcode": "^2.3.8", "next": "15.2.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { "@eslint/eslintrc": "^3", + "@types/bootstrap": "^5.2.10", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", @@ -1157,7 +1159,6 @@ "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "license": "MIT", - "peer": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -1203,6 +1204,16 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/bootstrap": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz", + "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.2" + } + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -3446,6 +3457,12 @@ "node": ">= 0.4" } }, + "node_modules/html5-qrcode": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.3.8.tgz", + "integrity": "sha512-jsr4vafJhwoLVEDW3n1KvPnCCXWaQfRng0/EEYk1vNcQGcG/htAdhJX0be8YyqMoSz7+hZvOZSTAepsabiuhiQ==", + "license": "Apache-2.0" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", diff --git a/package.json b/package.json index a52fe6b..3494693 100644 --- a/package.json +++ b/package.json @@ -11,12 +11,14 @@ "dependencies": { "bootstrap": "^5.3.3", "bootstrap-icons": "^1.11.3", + "html5-qrcode": "^2.3.8", "next": "15.2.4", "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { "@eslint/eslintrc": "^3", + "@types/bootstrap": "^5.2.10", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", diff --git a/src/app/(auth)/layout.tsx b/src/app/(auth)/layout.tsx new file mode 100644 index 0000000..bacb999 --- /dev/null +++ b/src/app/(auth)/layout.tsx @@ -0,0 +1,15 @@ +import Footer from '@/components/layout/footer'; +import Header from '@/components/layout/header'; +import React from 'react'; + +export default function Layout({ children }: { children: React.ReactNode }) { + return ( +
+
+
+
{children}
+
+
+ ); +} diff --git a/src/app/(auth)/login/administradores/page.tsx b/src/app/(auth)/login/administradores/page.tsx new file mode 100644 index 0000000..b302afc --- /dev/null +++ b/src/app/(auth)/login/administradores/page.tsx @@ -0,0 +1,5 @@ +import React from 'react'; + +export default function Page() { + return
Page
; +} diff --git a/src/app/(auth)/login/staff/page.tsx b/src/app/(auth)/login/staff/page.tsx new file mode 100644 index 0000000..9f4bfad --- /dev/null +++ b/src/app/(auth)/login/staff/page.tsx @@ -0,0 +1,33 @@ +'use client'; +import Button from '@/components/button'; +import Input from '@/components/input'; +import { useRouter } from 'next/navigation'; +import React from 'react'; + +export default function Page() { + const router = useRouter(); + + const handleOnSubmit = (e: React.FormEvent) => { + e.preventDefault(); + // Aquí puedes agregar la lógica para manejar el inicio de sesión + // Por ejemplo, validar las credenciales y redirigir al usuario + router.push('/staff'); + }; + + return ( +
+

Iniciar sesión

+

Staff

+ +
+ + +
+ +
+
+
+ ); +} diff --git a/src/app/administrador/crear-formulario/page.tsx b/src/app/administrador/crear-formulario/page.tsx index 907632b..6f10cd4 100644 --- a/src/app/administrador/crear-formulario/page.tsx +++ b/src/app/administrador/crear-formulario/page.tsx @@ -206,25 +206,6 @@ export default function AdminFormPage() { )} -
- - setNombreFormulario(e.target.value)} - /> -
- -
- -