feat: update toast messages and add city updates; enhance geocoding checks and localizations

This commit is contained in:
Sean Morley
2025-01-15 11:53:04 -05:00
parent bcbe7657ad
commit 0588555707
13 changed files with 89 additions and 37 deletions

View File

@@ -8,6 +8,7 @@
import FlagCheckeredVariantIcon from '~icons/mdi/flag-checkered-variant';
import Airplane from '~icons/mdi/airplane';
import CityVariantOutline from '~icons/mdi/city-variant-outline';
import MapMarkerStarOutline from '~icons/mdi/map-marker-star-outline';
const user = data.user;
const recentAdventures = data.props.adventures;
@@ -26,13 +27,6 @@
<!-- Stats -->
<div class="stats shadow mb-8 w-full bg-neutral">
<div class="stat">
<div class="stat-figure text-primary">
<FlagCheckeredVariantIcon class="w-10 h-10 inline-block" />
</div>
<div class="stat-title text-neutral-content">{$t('dashboard.countries_visited')}</div>
<div class="stat-value text-primary">{stats.country_count}</div>
</div>
<div class="stat">
<div class="stat-figure text-secondary">
<Airplane class="w-10 h-10 inline-block" />
@@ -40,13 +34,27 @@
<div class="stat-title text-neutral-content">{$t('dashboard.total_adventures')}</div>
<div class="stat-value text-secondary">{stats.adventure_count}</div>
</div>
<div class="stat">
<div class="stat-figure text-primary">
<FlagCheckeredVariantIcon class="w-10 h-10 inline-block" />
</div>
<div class="stat-title text-neutral-content">{$t('dashboard.countries_visited')}</div>
<div class="stat-value text-primary">{stats.visited_country_count}</div>
</div>
<div class="stat">
<div class="stat-figure text-success">
<CityVariantOutline class="w-10 h-10 inline-block" />
<MapMarkerStarOutline class="w-10 h-10 inline-block" />
</div>
<div class="stat-title text-neutral-content">{$t('dashboard.total_visited_regions')}</div>
<div class="stat-value text-success">{stats.visited_region_count}</div>
</div>
<div class="stat">
<div class="stat-figure text-info">
<CityVariantOutline class="w-10 h-10 inline-block" />
</div>
<div class="stat-title text-neutral-content">{$t('dashboard.total_visited_cities')}</div>
<div class="stat-value text-info">{stats.visited_city_count}</div>
</div>
</div>
<!-- Recent Adventures -->

View File

@@ -3,12 +3,14 @@
import { t } from 'svelte-i18n';
let stats: {
country_count: number;
visited_country_count: number;
total_regions: number;
trips_count: number;
adventure_count: number;
visited_region_count: number;
total_countries: number;
visited_city_count: number;
total_cities: number;
} | null;
stats = data.stats || null;
@@ -73,10 +75,10 @@
<div class="stat">
<div class="stat-title">{$t('profile.visited_countries')}</div>
<div class="stat-value text-center">
{Math.round((stats.country_count / stats.total_countries) * 100)}%
{Math.round((stats.visited_country_count / stats.total_countries) * 100)}%
</div>
<div class="stat-desc text-center">
{stats.country_count}/{stats.total_countries}
{stats.visited_country_count}/{stats.total_countries}
</div>
</div>
@@ -89,6 +91,16 @@
{stats.visited_region_count}/{stats.total_regions}
</div>
</div>
<div class="stat">
<div class="stat-title">{$t('profile.visited_cities')}</div>
<div class="stat-value text-center">
{Math.round((stats.visited_city_count / stats.total_cities) * 100)}%
</div>
<div class="stat-desc text-center">
{stats.visited_city_count}/{stats.total_cities}
</div>
</div>
</div>
</div>
{/if}

View File

@@ -62,7 +62,10 @@
});
let data = await res.json();
if (res.ok) {
addToast('success', `${data.new_regions} ${$t('adventures.regions_updated')}`);
addToast(
'success',
`${data.new_regions} ${$t('adventures.regions_updated')}. ${data.new_cities} ${$t('adventures.cities_updated')}.`
);
} else {
addToast('error', $t('adventures.error_updating_regions'));
}