Skip to content

Commit 35897bb

Browse files
authored
Merge pull request #34 from UNBiters/register
Register
2 parents 0d821a0 + defdda4 commit 35897bb

49 files changed

Lines changed: 10228 additions & 627 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/layout.js

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,35 @@
1+
import { UserProvider } from '@/context/UserContext';
12
import NavbarMain from '@/components/NavbarMain'
23
import Footer from '@/components/Footer'
34
import '@/styles/globals.css';
45
import '@/styles/navbar.css';
56
import '@/styles/card.css';
67
import '@/styles/login.css';
78
import '@/styles/t&c.css';
9+
import '@/dist/output.css';
10+
811
import { Inter } from 'next/font/google'
12+
import Navbar from '@/components/Navbar/Navbar';
913
const inter = Inter({ subsets: ['latin'] })
1014

1115
export const metadata = {
1216
title: 'UNBiters',
1317
description: 'Reseñas chazas Universidad Nacional de Colombia',
1418
keywords: ["UNBiters", "Reseñas", "Chazas"],
19+
1520
}
1621

1722
export default function RootLayout({ children }) {
1823
//console.log(window.sessionStorage.getItem('sesion'))
1924
return (
2025
<html lang="en" suppressHydrationWarning={true}>
2126
<head>
22-
<link href="https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.8.1/flowbite.min.css" rel="stylesheet" />
23-
</head>
24-
<script src="https://cdnjs.cloudflare.com/ajax/libs/flowbite/1.8.1/flowbite.min.js" async></script>
25-
<script src="../path/to/flowbite/dist/flowbite.min.js" async></script>
26-
<body className={inter.className}>
27-
<NavbarMain />
28-
{children}
29-
<Footer />
27+
</head> <body className={inter.className}>
28+
<UserProvider>
29+
<Navbar />
30+
{children}
31+
<Footer />
32+
</UserProvider>
3033
</body>
3134
</html>
3235
)

app/page.js

Lines changed: 40 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import Card from '@/components/Card';
77
import Filter from '@/components/Filter';
88
import NewPost from '@/components/NewPost';
99

10-
import client, { myClient } from "@/config/client";
10+
import client from "@/config/client";
1111
import ModalComments from '@/components/Modal/ModalComments';
1212
import { useSearchParams, useRouter } from 'next/navigation'
1313
import CardReview from '@/components/Cards/CardReview';
@@ -26,10 +26,14 @@ async function loadPost() {
2626

2727
export default function Home() {
2828
const searchParams = useSearchParams()
29+
const [categorias, setCategorias] = useState([]);
30+
const [numComments, setNumComments] = useState("");
2931
const idSearch = searchParams.get('id')
3032
const router = useRouter()
3133
const [chazas, setChazas] = useState([])
34+
const [names, setName] = useState([])
3235
const [posts, setPosts] = useState([])
36+
const [isOpen, setIsOpen] = useState(false)
3337
useEffect(() => {
3438

3539
client.get(`chazas`, { next: { revalidate: true | 0 | 60 } })
@@ -49,106 +53,56 @@ export default function Home() {
4953
setPosts(res.data.data.data)
5054
//if (!posts) return "An error has occurred.";
5155
})
52-
}, [])
5356

54-
//const post = await loadPost()
55-
var comments = [
56-
{
57-
"id": 1,
58-
"review": "¡Este es un comentario genial!",
59-
"urlImagen": "https://www.example.com/imagen1.jpg"
60-
},
61-
{
62-
"id": 2,
63-
"review": "Este es otro comentario genial",
64-
"urlImagen": "https://www.example.com/imagen2.jpg"
65-
},
66-
{
67-
"id": 3,
68-
"review": "¡Esta imagen es increíble!",
69-
"urlImagen": "https://www.example.com/imagen3.jpg"
70-
},
71-
{
72-
"id": 4,
73-
"review": "¡Este es un comentario muy profundo!",
74-
"urlImagen": "https://www.example.com/imagen4.jpg"
75-
},
76-
{
77-
"id": 5,
78-
"review": "¡Esta imagen me hace reír!",
79-
"urlImagen": "https://www.example.com/imagen5.jpg"
80-
},
81-
{
82-
"id": 6,
83-
"review": "¡Esta imagen es muy triste!",
84-
"urlImagen": "https://www.example.com/imagen6.jpg"
85-
},
86-
{
87-
"id": 7,
88-
"review": "¡Esta imagen es muy hermosa!",
89-
"urlImagen": "https://www.example.com/imagen7.jpg"
90-
},
91-
{
92-
"id": 8,
93-
"review": "¡Esta imagen es muy graciosa!",
94-
"urlImagen": "https://www.example.com/imagen8.jpg"
95-
},
96-
{
97-
"id": 9,
98-
"review": "¡Esta imagen es muy inspiradora!",
99-
"urlImagen": "https://www.example.com/imagen9.jpg"
100-
},
101-
{
102-
"id": 10,
103-
"review": "¡Esta imagen es muy creativa!",
104-
"urlImagen": "https://www.example.com/imagen10.jpg"
105-
}
106-
]
57+
client.get(`chazas/every`, { next: { revalidate: true | 0 | 60 } })
58+
.then((res) => {
59+
//console.log(res)
60+
if (!res.status == "200") {
61+
throw new Error('Failed to fetch data')
62+
}
63+
var data = res.data.data.data
64+
if (data.length > 0) {
65+
//console.log(data)
66+
setName(data)
67+
} else {
68+
console.log("No hay data")
69+
}
70+
})
71+
}, [])
10772
return (
10873
<div id='home' className='grid grid-cols-2'>
109-
{idSearch && (<ModalComments onClose={() => { router.push("/") }} _id={idSearch} />)
74+
{idSearch && (<ModalComments numComments={numComments} setNumComments={setNumComments} onClose={() => { router.push(`/#${idSearch}`) }} _id={idSearch} />)
11075

11176
}
112-
<Filter className={"formSearch justify-items-center px-3 flex mx-auto text-center"} ></Filter>
113-
<div className='formSearch justify-items-center px-3'>
114-
<form>
115-
<label htmlFor="default-search" className="mb-2 text-sm font-medium text-gray-900 sr-only dark:text-white">Buscar</label>
116-
<div className="relative">
117-
<div className="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
118-
<svg className="w-4 h-4 text-gray-500 dark:text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20">
119-
<path stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="m19 19-4-4m0-7A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z" />
120-
</svg>
121-
</div>
122-
<input type="search" id="default-search" className="block w-full p-4 pl-10 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Search Mockups, Logos..." required />
123-
<button type="submit" className="text-white absolute right-2.5 bottom-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Buscar</button>
124-
</div>
125-
</form>
126-
127-
</div>
128-
<div className='newpost col-span-2 flex justify-end px-3'>
129-
<NewPost></NewPost>
77+
<Filter posts={posts} setPosts={setPosts} categorias={categorias} setCategorias={setCategorias} />
78+
<div className='newpost col-span-2 flex justify-end px-3 min-[650px]:grid-cols-1'>
79+
<div className="inline-flex rounded-md shadow-sm" role="group">
80+
<button onClick={() => router.refresh()} type="button" className="text-white px-4 py-2 text-sm font-medium text-gray-900 bg-transparent border border-gray-900 rounded-l-lg hover:bg-gray-900 hover:text-white focus:z-10 focus:ring-2 focus:ring-gray-500 focus:bg-gray-900 focus:text-white dark:border-white dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:bg-gray-700">
81+
Actualizar Publicaciones
82+
</button>
83+
<button
84+
type="button"
85+
onClick={() => setIsOpen(true)}
86+
className="text-white px-4 py-2 text-sm font-medium text-gray-900 bg-transparent border border-gray-900 rounded-r-md hover:bg-gray-900 hover:text-white focus:z-10 focus:ring-2 focus:ring-gray-500 focus:bg-gray-900 focus:text-white dark:border-white dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:bg-gray-700"
87+
>
88+
Crear publicacíon
89+
</button>
90+
</div>
91+
<NewPost open={isOpen} onClose={() => { router.push("/"); setIsOpen(false) }}></NewPost>
13092
</div>
131-
<div className="col-span-2 pt-3 CardProfile justify-items-center grid min-[1000px]:grid-cols-2 min-[1300px]:grid-cols-3 min-[1300px]:px-3">
93+
{/* col-span-2 pt-3 CardProfile justify-items-center grid min-[1000px]:grid-cols-2 min-[1300px]:grid-cols-3 min-[1300px]:px-3 */}
94+
<div className="col-span-2 justify-items-center grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3">
13295
{posts ?
13396
posts.map((card) => (
13497
<>
135-
<CardReview key={"pub" + card._id} card={card} idModal={card._id} comments={card.reviews} className={"ListComment pb-2"} />
136-
</>
137-
)
138-
)
139-
140-
: null}
141-
{chazas ?
142-
chazas.map((chaz) => (
143-
<>
144-
<Card key={"cha" + chaz._id} card={chaz} idModal={chaz._id} comments={comments} className={"ListComment pb-2"}></Card>
98+
<CardReview numComments={numComments} setNumComments={setNumComments} names={names} key={card._id} card={card} idModal={card._id} comments={card.reviews} className={"ListComment pb-2 md:mx-2 "} />
14599
</>
146100
)
147101
)
148102

149103
: null}
150104
</div>
151-
<a href="/unbiters/pricing" className="btn-flotante text-white right-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
105+
<a href="/unbiters/pricing" className="invisible md:visible btn-flotante text-white right-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
152106
Explora Premium
153107
</a>
154108

app/unbiters/chazas/page.js

Lines changed: 50 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,41 @@
1-
import CardComent from '@/components/CardComment';
2-
import CardChaza from '@/components/CardChaza';
3-
import client from "@/config/client";
4-
import Comments from '@/components/Comments';
1+
'use client'
2+
import React, { useEffect, useState } from 'react';
53
import Card from '@/components/Card';
64
import Filter from '@/components/Filter';
75
import NewPost from '@/components/NewPost';
8-
import { myClient } from "@/config/client";
96

7+
import client, { myClient } from "@/config/client";
8+
import ModalComments from '@/components/Modal/ModalComments';
9+
import { useSearchParams, useRouter } from 'next/navigation'
1010

11-
async function loadPost() {
12-
try {
13-
var res = await client.get("chazas");
14-
await new Promise((resolve) => setTimeout(resolve, 5000))
15-
return res.data.data;
16-
} catch (err) {
17-
//console.log("err", err);
18-
}
19-
}
11+
export default function Home() {
12+
const searchParams = useSearchParams()
13+
const idSearch = searchParams.get('id')
14+
const router = useRouter()
15+
const [chazas, setChazas] = useState([])
16+
//const [posts, setPosts] = useState([])
17+
useEffect(() => {
18+
19+
client.get(`chazas`, { next: { revalidate: true | 0 | 60 } })
20+
.then((res) => {
21+
if (!res.status == "200") {
22+
throw new Error('Failed to fetch data')
23+
}
24+
console.log(res.data.data.data)
25+
setChazas(res.data.data.data)
26+
})
2027

21-
export default async function Home() {
22-
//const post = (await loadPost())
23-
//console.log(post.data[0])
24-
const res = await client.get(`${myClient.url}chazas`, { next: { revalidate: false | 0 | 300 } })
28+
/*client.get(`publications`, { next: { revalidate: true | 0 | 60 } }).
29+
then((res) => {
2530
26-
if (!res.status == "201") {
27-
throw new Error('Failed to fetch data')
28-
}
29-
var chazas = res.data.data.data
30-
if (!chazas) return "An error has occurred.";
31-
//if (isLoading) return "Loading...";
31+
if (!res.status == "200") {
32+
throw new Error('Failed to fetch data')
33+
}
34+
setPosts(res.data.data.data)
35+
//if (!posts) return "An error has occurred.";
36+
})*/
37+
}, [])
38+
//const post = await loadPost()
3239
var comments = [
3340
{
3441
"id": 1,
@@ -83,31 +90,33 @@ export default async function Home() {
8390
]
8491
return (
8592
<div id='home' className='grid grid-cols-2'>
86-
<Filter className={"formSearch justify-items-center px-3 flex mx-auto text-center"} ></Filter>
87-
<div className='formSearch justify-items-center px-3'>
88-
<form>
89-
<label htmlFor="default-search" className="mb-2 text-sm font-medium text-gray-900 sr-only dark:text-white">Search</label>
90-
<div className="relative">
91-
<div className="absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none">
92-
<svg className="w-4 h-4 text-gray-500 dark:text-gray-400" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20">
93-
<path stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="m19 19-4-4m0-7A7 7 0 1 1 1 8a7 7 0 0 1 14 0Z" />
94-
</svg>
95-
</div>
96-
<input type="search" id="default-search" className="block w-full p-4 pl-10 text-sm text-gray-900 border border-gray-300 rounded-lg bg-gray-50 focus:ring-blue-500 focus:border-blue-500 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" placeholder="Search Mockups, Logos..." required />
97-
<button type="submit" className="text-white absolute right-2.5 bottom-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">Search</button>
98-
</div>
99-
</form>
93+
{idSearch && (<ModalComments onClose={() => { router.push(`/#${idSearch}`) }} _id={idSearch} />)
10094

95+
}
96+
{/*<Filter />*/}
97+
<div className='newpost col-span-2 flex justify-end px-3 min-[650px]:grid-cols-1'>
98+
99+
<div className="inline-flex rounded-md shadow-sm">
100+
<button onClick={() => router.refresh()} type="button" className="text-white px-4 py-2 text-sm font-medium text-gray-900 bg-transparent border border-gray-900 rounded-md hover:bg-gray-900 hover:text-white focus:z-10 focus:ring-2 focus:ring-gray-500 focus:bg-gray-900 focus:text-white dark:border-white dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:bg-gray-700">
101+
Actualizar Chazas
102+
</button>
103+
</div>
101104
</div>
102-
<div className="col-span-2 pt-3 CardProfile justify-items-center grid min-[1300px]:grid-cols-2 min-[1300px]:px-3">
105+
<div className="pb-12 col-span-2 justify-items-center grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-3">
103106
{chazas ?
104-
chazas.map((card) => (
105-
<Card key={"chaza" + card._id} card={card} idModal={card._id} comments={comments} className={"ListComment pb-2"}></Card>
107+
chazas.map((chaz) => (
108+
<>
109+
<Card key={"cha" + chaz._id} card={chaz} idModal={chaz._id} comments={comments} className={"ListComment pb-2 mx-2"}></Card>
110+
</>
106111
)
107112
)
108113

109114
: null}
110115
</div>
116+
<a href="/unbiters/pricing" className="invisible md:visible btn-flotante text-white right-2.5 bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-4 py-2 dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800">
117+
Explora Premium
118+
</a>
119+
111120
</div>
112121
)
113122
}

0 commit comments

Comments
 (0)