nidus-sync/ts/rmo/content/Home.vue
Eli Ribble 9dccd21cee
RMO frontend checkpoint
* Create a nwe AddressAndMapLocator which abstracts out the behavior of
   selecting a location
 * Fix the overlay causing render errors on the MapLocator by getting
   rid of the overlay and just using a lock indicator
 * Fix MapLocator zooming in to the wrong place by not framing the
   markers
 * Remove Latlng from platform and just use Location with optional
   accuracy
 * Use nested types with form-encoded POST
 * Fix styles on water report page
2026-04-09 17:21:35 +00:00

93 lines
2.4 KiB
Vue

<style scoped>
.bi-large {
height: 48px;
width: 48px;
}
.service-card {
transition: transform 0.3s;
height: 100%;
}
.service-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
</style>
<template>
<main>
<slot name="header"></slot>
<!-- Services Section -->
<section class="py-5">
<div class="container">
<h3 class="text-center mb-4">How Can We Help You Today?</h3>
<div class="row g-4">
<div class="col-md-4">
<div class="card service-card h-100">
<div class="card-body text-center">
<div class="mb-3">
<i class="bi bi-large bi-mosquito-color"></i>
</div>
<h4 class="card-title">Report Mosquito Nuisance</h4>
<p class="card-text">
Report areas with high adult mosquito activity causing
discomfort or concern.
</p>
<RouterLink :to="link('nuisance')" class="btn btn-primary mt-3"
>Report Problem</RouterLink
>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card service-card h-100">
<div class="card-body text-center">
<div class="mb-3">
<i class="bi bi-large bi-pond-color"></i>
</div>
<h4 class="card-title">Report Standing Water</h4>
<p class="card-text">
Report any water that has been sitting for several days, where
mosquitoes can live.
</p>
<RouterLink :to="link('water')" class="btn btn-primary mt-3"
>Report Source</RouterLink
>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card service-card h-100">
<div class="card-body text-center">
<div class="mb-3">
<i class="bi bi-large bi-check-report-color"></i>
</div>
<h4 class="card-title">Follow-up or Check Status</h4>
<p class="card-text">
Check on a previous request or view current mosquito activity
in your area.
</p>
<RouterLink :to="link('status')" class="btn btn-primary mt-3"
>Get Status</RouterLink
>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
</template>
<script setup lang="ts">
interface Props {
slug?: string;
}
const props = defineProps<Props>();
const link = (path: string): string => {
if (props.slug) {
return `/district/${props.slug}/${path}`;
} else {
return path;
}
};
</script>