Skip to content
Snippets Groups Projects
Commit 5032d5b8 authored by hugcubi's avatar hugcubi
Browse files

mocks quitados

parent dbcceed9
No related branches found
No related tags found
2 merge requests!26Revert "Funciona register",!24Implementacion de formulario con datos de usuario
// main-page.component.ts
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { User, UserStateFilter } from '../../../../../types'; import { User, UserStateFilter } from '../../../../../types';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import users from '../../../../../mocks/users.json';
import { RouterModule } from '@angular/router'; import { RouterModule } from '@angular/router';
import { UserClientService } from '../../../../shared/user-client.service'; import { UserClientService } from '../../../../shared/user-client.service';
import mockUsers from '../../../../../mocks/users.json'; // Renombrado para claridad
@Component({ @Component({
standalone: true, standalone: true,
imports: [FormsModule, CommonModule, RouterModule], imports: [FormsModule, CommonModule, RouterModule],
...@@ -21,16 +21,24 @@ export class MainPageComponent implements OnInit { ...@@ -21,16 +21,24 @@ export class MainPageComponent implements OnInit {
constructor(private userClient: UserClientService) {} constructor(private userClient: UserClientService) {}
ngOnInit(): void { ngOnInit(): void {
this.users = users as unknown as User[]; // Validar que el mock sea del tipo correcto
this.userClient.getAllUsers().subscribe((data: User[]) => { const isValidMock = Array.isArray(mockUsers) && mockUsers.every(user => 'id' in user && 'name' in user && 'status' in user);
this.users = isValidMock ? (mockUsers as User[]) : [];
this.filteredUsers = [...this.users];
// Sobrescribir con datos reales si están disponibles
this.userClient.getAllUsers().subscribe({
next: (data: User[]) => {
this.users = data; this.users = data;
this.filteredUsers = data; // Inicialmente, muestra todos los usuarios this.filteredUsers = [...data];
},
error: (err) => console.error('Error al cargar usuarios:', err),
}); });
} }
filterUsers(): void { filterUsers(): void {
if (this.selectedStatus === 'All') { if (this.selectedStatus === 'All') {
this.filteredUsers = this.users; this.filteredUsers = [...this.users];
} else { } else {
this.filteredUsers = this.users.filter( this.filteredUsers = this.users.filter(
(user) => user.status === this.selectedStatus (user) => user.status === this.selectedStatus
...@@ -38,7 +46,7 @@ export class MainPageComponent implements OnInit { ...@@ -38,7 +46,7 @@ export class MainPageComponent implements OnInit {
} }
} }
getState(user: User) { getState(user: User): string {
switch (user.status) { switch (user.status) {
case 'NO_BOOKINGS': case 'NO_BOOKINGS':
return 'SIN RESERVAS'; return 'SIN RESERVAS';
...@@ -46,6 +54,8 @@ export class MainPageComponent implements OnInit { ...@@ -46,6 +54,8 @@ export class MainPageComponent implements OnInit {
return 'CON RESERVAS ACTIVAS'; return 'CON RESERVAS ACTIVAS';
case 'WITH_INACTIVE_BOOKINGS': case 'WITH_INACTIVE_BOOKINGS':
return 'CON RESERVAS INACTIVAS'; return 'CON RESERVAS INACTIVAS';
default:
return 'ESTADO DESCONOCIDO';
} }
} }
} }
.form-container { .form-container {
width: 100%; max-width: 400px;
max-width: 500px; margin: 50px auto;
margin: 0 auto; background: #f8f9fa;
padding: 20px; padding: 20px;
background: #f9f9f9; border-radius: 10px;
border: 1px solid #ddd; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
border-radius: 8px; font-family: Arial, sans-serif;
} }
h2 { h2 {
text-align: center; text-align: center;
margin-bottom: 20px; margin-bottom: 20px;
color: #333;
} }
.form-group { .form-group {
...@@ -21,48 +22,60 @@ ...@@ -21,48 +22,60 @@
display: block; display: block;
font-weight: bold; font-weight: bold;
margin-bottom: 5px; margin-bottom: 5px;
color: #555;
} }
input { input {
width: 100%; width: 100%;
padding: 10px; padding: 10px;
font-size: 16px; font-size: 14px;
border: 1px solid #ccc; border: 1px solid #ccc;
border-radius: 4px; border-radius: 5px;
box-sizing: border-box; background: #fff;
} }
input[readonly] { input[readonly] {
background-color: #f5f5f5; background: #f3f3f3;
cursor: not-allowed;
} }
.button-group { .button-group {
display: flex; display: flex;
gap: 10px; justify-content: space-between;
justify-content: center; margin-top: 20px;
} }
button { .btn {
padding: 10px 20px; padding: 10px 20px;
font-size: 16px; font-size: 14px;
border-radius: 4px;
border: none; border: none;
border-radius: 5px;
cursor: pointer; cursor: pointer;
transition: background-color 0.3s ease;
} }
.btn-primary { .btn-primary {
background-color: #007bff; background-color: #007bff;
color: #fff; color: white;
}
.btn-primary:hover {
background-color: #0056b3;
} }
.btn-secondary { .btn-secondary {
background-color: #6c757d; background-color: #6c757d;
color: #fff; color: white;
}
.btn-secondary:hover {
background-color: #5a6268;
} }
.btn-success { .btn-success {
background-color: #28a745; background-color: #28a745;
color: #fff; color: white;
} }
.btn-success:hover {
background-color: #218838;
}
<div class="form-container"> <div class="form-container">
<h2>Perfil de Usuario</h2> <h2>Perfil de Usuario</h2>
<form [formGroup]="userForm"> <form [formGroup]="userForm" (ngSubmit)="saveChanges()">
<!-- Campo Nombre -->
<div class="form-group"> <div class="form-group">
<label for="name">Nombre:</label> <label for="name">Nombre:</label>
<input <input
...@@ -12,6 +13,7 @@ ...@@ -12,6 +13,7 @@
/> />
</div> </div>
<!-- Campo Email -->
<div class="form-group"> <div class="form-group">
<label for="email">Email:</label> <label for="email">Email:</label>
<input <input
...@@ -23,6 +25,7 @@ ...@@ -23,6 +25,7 @@
/> />
</div> </div>
<!-- Campo Contraseña Actual (solo en edición) -->
<div class="form-group" *ngIf="isEditing"> <div class="form-group" *ngIf="isEditing">
<label for="currentPassword">Contraseña actual:</label> <label for="currentPassword">Contraseña actual:</label>
<input <input
...@@ -34,6 +37,7 @@ ...@@ -34,6 +37,7 @@
/> />
</div> </div>
<!-- Campo Nueva Contraseña (solo en edición) -->
<div class="form-group" *ngIf="isEditing"> <div class="form-group" *ngIf="isEditing">
<label for="newPassword">Nueva contraseña:</label> <label for="newPassword">Nueva contraseña:</label>
<input <input
...@@ -45,6 +49,7 @@ ...@@ -45,6 +49,7 @@
/> />
</div> </div>
<!-- Grupo de Botones -->
<div class="button-group"> <div class="button-group">
<button <button
*ngIf="!isEditing" *ngIf="!isEditing"
...@@ -68,7 +73,6 @@ ...@@ -68,7 +73,6 @@
*ngIf="isEditing" *ngIf="isEditing"
type="submit" type="submit"
class="btn btn-success" class="btn btn-success"
(click)="saveChanges()"
[disabled]="!userForm.valid" [disabled]="!userForm.valid"
> >
Guardar Guardar
...@@ -76,4 +80,3 @@ ...@@ -76,4 +80,3 @@
</div> </div>
</form> </form>
</div> </div>
\ No newline at end of file
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
import { UserClientService } from '../../../../shared/user-client.service'; import { UserClientService } from '../../../../shared/user-client.service';
@Component({ @Component({
standalone: true,
selector: 'app-user-form', selector: 'app-user-form',
templateUrl: './user-form.component.html', templateUrl: './user-form.component.html',
styleUrls: ['./user-form.component.css'], styleUrls: ['./user-form.component.css'],
imports: [ReactiveFormsModule, FormsModule],
}) })
export class UserFormComponent implements OnInit { export class UserFormComponent implements OnInit {
userForm!: FormGroup; userForm!: FormGroup;
...@@ -15,7 +17,7 @@ export class UserFormComponent implements OnInit { ...@@ -15,7 +17,7 @@ export class UserFormComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
this.initializeForm(); this.initializeForm();
this.loadUserData(); // this.loadUserData();
} }
private initializeForm(): void { private initializeForm(): void {
......
[
{
"id": 1,
"name": "John Doe",
"email": "jon@com",
"status": "NO_BOOKINGS"
},
{
"id": 2,
"name": "Jane Smith",
"status": "WITH_ACTIVE_BOOKINGS"
}
]
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment