Skip to content

Commit

Permalink
Merge pull request #21 from iic2154-uc-cl/ok
Browse files Browse the repository at this point in the history
Ok
  • Loading branch information
luzmagurzua authored Nov 4, 2024
2 parents 5e7d133 + 0d11a7b commit c645d60
Show file tree
Hide file tree
Showing 20 changed files with 2,726 additions and 2,749 deletions.
2 changes: 2 additions & 0 deletions src/Router.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import Favoritos from './pages/users/favoritos.jsx';
import Notification from './pages/users/notificaciones.jsx';
import NewMapa from './pages/newMapa.jsx';
import Calendario from './pages/calendario.jsx';
import GestionSolicitudes from './pages/GestionSolicitudes.jsx';

function Router() {

Expand All @@ -30,6 +31,7 @@ function Router() {
<Route path="/notificaciones" element={<Notification />} />
<Route path="/mapa-navegacion" element={<NewMapa />} />
<Route path="/calendario" element={<Calendario />} />
<Route path="/gestion-solicitudes" element={<GestionSolicitudes />} />



Expand Down
2 changes: 2 additions & 0 deletions src/components/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ function NavBar() {
<Link to="/publicaciones" className="footer-link">Mis Publicaciones</Link>
<Link to="/favoritos" className="footer-link">Mis Favoritos</Link>
<Link to="/notificaciones" className="footer-link">Enviar notificaciones a usuarios</Link>
<Link to="/gestion-solicitudes" className="footer-link">Gestión de Solicitudes</Link>

</>
)}

Expand Down
99 changes: 99 additions & 0 deletions src/pages/GestionSolicitudes.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
// GestionSolicitudes.jsx
import React, { useState } from 'react';
import '../styles/gestionSolicitudes.css';
import Navbar from '../components/Navbar';
import Footer from '../components/Footer';

const GestionSolicitudes = () => {
const [solicitudes, setSolicitudes] = useState([
{ id: 1, tipo: 'Evento', descripcion: 'Concierto en el parque', estado: 'Pendiente', comentario: '', fecha: '2024-11-01' },
{ id: 2, tipo: 'Publicación', descripcion: 'Casa en la playa', estado: 'Pendiente', comentario: '', fecha: '2024-11-02' },
{ id: 3, tipo: 'Notificación', descripcion: 'Nuevo mensaje', estado: 'Pendiente', comentario: '', fecha: '2024-11-03' },
// Añadir más solicitudes de diferentes tipos y fechas
]);

const [filtroFecha, setFiltroFecha] = useState('');
const [filtroTipo, setFiltroTipo] = useState('');

const handleAction = (id, action) => {
setSolicitudes(prevSolicitudes =>
prevSolicitudes.map(solicitud =>
solicitud.id === id ? { ...solicitud, estado: action } : solicitud
)
);
};

const handleComentarioChange = (id, comentario) => {
setSolicitudes(prevSolicitudes =>
prevSolicitudes.map(solicitud =>
solicitud.id === id ? { ...solicitud, comentario } : solicitud
)
);
};

const solicitudesFiltradas = solicitudes.filter(solicitud => {
const coincideFecha = filtroFecha ? solicitud.fecha === filtroFecha : true;
const coincideTipo = filtroTipo ? solicitud.tipo === filtroTipo : true;
return coincideFecha && coincideTipo;
});

return (
<div>
<Navbar />
<div className="gestion-solicitudes-container">
<h1>Gestión de Solicitudes</h1>
<div className="GS-content">
{/* Filtros */}
<div className="filters">
<h3>Filtros</h3>
<label>Fecha solicitud:</label>
<input
type="date"
value={filtroFecha}
onChange={(e) => setFiltroFecha(e.target.value)}
/>
<label>Tipo:</label>
<select
value={filtroTipo}
onChange={(e) => setFiltroTipo(e.target.value)}
>
<option value="">Todos</option>
<option value="Evento">Eventos</option>
<option value="Publicación">Publicaciones</option>
<option value="Notificación">Notificaciones</option>
</select>
</div>

{/* Lista de solicitudes */}
<div className="solicitudes-list">
{solicitudesFiltradas.map(solicitud => (
<div key={solicitud.id} className="solicitud-item">
<h2>{solicitud.tipo}</h2>
<p>{solicitud.descripcion}</p>
<p>Fecha solicitud: {solicitud.fecha}</p>
<p>Estado: {solicitud.estado}</p>
<textarea
placeholder="Escribe un comentario (opcional)"
value={solicitud.comentario}
onChange={(e) => handleComentarioChange(solicitud.id, e.target.value)}
className="comentario-input"
/>
<div className="actions">
<button className="button-aceptar" onClick={() => handleAction(solicitud.id, 'Aceptada')}>Aceptar</button>
<button className="button-rechazar" onClick={() => handleAction(solicitud.id, 'Rechazada')}>Rechazar</button>
<button className="button-objetar" onClick={() => handleAction(solicitud.id, 'Objetada')}>Objetar</button>
</div>
{solicitud.estado === 'Objetada' && solicitud.comentario && (
<p>Comentario: {solicitud.comentario}</p>
)}
</div>
))}
</div>
</div>
</div>
<Footer />
</div>
);
};

export default GestionSolicitudes;
2 changes: 1 addition & 1 deletion src/pages/servicios.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const Servicios = () => {
<div className="intro-section">
<img src={empanadas} alt="Servicio" className="intro-image" />
<div className="intro-text">
<h1>Servicios en GeoRent</h1>
<h1>Servicios en GeoMapp</h1>
<h2 className="subtitle">GeoRent, aplicación social, permite georreferenciar toda la oferta de servicios y comercio afín que se encuentra en tu sector.</h2>
<p>Locatarios y pequeños emprendedores de cada lugar podrán georreferenciar sus locales y negocios de una manera rápida y sencilla, potenciando su visibilidad frente a la demanda de productos y servicios que se generan durante todo el año; sobre todo, en los períodos de incremento de veraneantes en época estival.</p>
<p>La solución de búsqueda de servicios en mapas geolocalizados, permite, durante todo el año, ser un elemento de vital importancia para la potenciación de cada negocio de la zona, y al mismo tiempo, fomentar la aparición de nuevos emprendimientos que den crecimiento al sector y su gente.</p>
Expand Down
Loading

0 comments on commit c645d60

Please sign in to comment.