This commit is contained in:
2025-11-04 10:56:19 +01:00
parent 1af49f5228
commit 28edfef8bf
5 changed files with 114 additions and 12 deletions

View File

@@ -0,0 +1,62 @@
.listing-photo {
height: 600px;
width: 50%;
object-fit: cover;
border-radius: 30px;
float: right;
}
.listing-heading {
font-size: 48pt;
font-weight: bold;
margin-bottom: 15px;
}
.listing-location::before {
content: url('/assets/location-pin.svg') / '';
}
.listing-location {
font-size: 24pt;
margin-bottom: 15px;
}
.listing-features > .section-heading {
color: var(--secondary-color);
font-size: 24pt;
margin-bottom: 15px;
}
.listing-features {
margin-bottom: 20px;
}
.listing-features li {
font-size: 14pt;
}
li {
list-style-type: none;
}
.listing-apply .section-heading {
font-size: 18pt;
margin-bottom: 15px;
}
label, input {
display: block;
}
label {
color: var(--secondary-color);
font-weight: bold;
text-transform: uppercase;
font-size: 12pt;
}
input {
font-size: 16pt;
margin-bottom: 15px;
padding: 10px;
width: 400px;
border-top: none;
border-right: none;
border-left: none;
border-bottom: solid .3px;
}
@media (max-width: 1024px) {
.listing-photo {
width: 100%;
height: 400px;
}
}

View File

@@ -0,0 +1,13 @@
<article>
<img class="listing-photo" [src]="housingLocation?.photo"
alt="Exterior photo of {{ housingLocation?.name }}" crossorigin/>
<section class="listing-description"><h2 class="listing-heading">{{ housingLocation?.name }}</h2>
<p class="listing-location">{{ housingLocation?.city }}, {{ housingLocation?.state }}</p></section>
<section class="listing-features"><h2 class="section-heading">About this housing location</h2>
<ul>
<li>Units available: {{ housingLocation?.availableUnits }}</li>
<li>Does this location have wifi: {{ housingLocation?.wifi }}</li>
<li>Does this location have laundry: {{ housingLocation?.laundry }}</li>
</ul>
</section>
</article>

View File

@@ -1,15 +1,39 @@
import { Component } from '@angular/core';
import {Component, inject} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {HousingService} from '../housing';
import {HousingLocationInfo} from '../housinglocation';
@Component({
selector: 'app-details',
imports: [],
template: `
<p>
details works!
</p>
selector: 'app-details',
template: `
<article>
<img
class="listing-photo"
[src]="housingLocation?.photo"
alt="Exterior photo of {{ housingLocation?.name }}"
crossorigin
/>
<section class="listing-description">
<h2 class="listing-heading">{{ housingLocation?.name }}</h2>
<p class="listing-location">{{ housingLocation?.city }}, {{ housingLocation?.state }}</p>
</section>
<section class="listing-features">
<h2 class="section-heading">About this housing location</h2>
<ul>
<li>Units available: {{ housingLocation?.availableUnits }}</li>
<li>Does this location have wifi: {{ housingLocation?.wifi }}</li>
<li>Does this location have laundry: {{ housingLocation?.laundry }}</li>
</ul>
</section>
</article>
`,
styles: ``
styleUrls: ['./details.css'],
})
export class Details {
}
route: ActivatedRoute = inject(ActivatedRoute);
housingService = inject(HousingService);
housingLocation: HousingLocationInfo | undefined;
constructor() {
const housingLocationId = Number(this.route.snapshot.params['id']);
this.housingLocation = this.housingService.getHousingLocationById(housingLocationId);
}
}

View File

@@ -3,4 +3,5 @@
alt="Exterior photo of {{ housingLocation().name }}" crossorigin/>
<h2 class="listing-heading">{{ housingLocation().name }}</h2>
<p class="listing-location">{{ housingLocation().city }}, {{ housingLocation().state }}</p>
<a [routerLink]="['/details', housingLocation().id]">Learn More</a>
</section>

View File

@@ -1,8 +1,10 @@
import {Component, input} from '@angular/core'; // Importation de la fonction input() et des components
import {HousingLocationInfo} from '../housinglocation'; // Interface
import {RouterModule} from '@angular/router'; // Importation du router
@Component({
selector: 'app-housing-location',
imports: [],
imports: [RouterModule],
templateUrl: './housing-location.html',
styleUrls: ['./housing-location.css'],
})