World Travel Improvements (#925)

* Security Patch Django 5.2.8

* Fix Menus on Safari Browser

* Enhance touch support and event handling for emoji picker and dropdown

* Add touch and pointer event handling to category selection for better mobile support

* Add PWA support for iOS/Safari with touch icons

* Refactor event listener for dropdown to use non-capturing 'click' for improved compatibility on Safari

* Enhance country and region description fetching from Wikipedia

- Refactor `generate_description_view.py` to improve candidate page selection and description retrieval.
- Update `CategoryDropdown.svelte` to simplify emoji selection handling and improve dropdown behavior.
- Add new translation keys in `en.json` for UI elements related to country descriptions.
- Modify `+page.svelte` and `+page.server.ts` in world travel routes to fetch and display country and region descriptions.
- Implement a toggle for showing full descriptions in the UI.

* Update Unraid installation documentation with improved variable formatting and additional resources

* Implement cache invalidation for visited regions and cities to ensure updated visit lists

* Add ClusterMap component for enhanced geographical data visualization
This commit is contained in:
Sean Morley
2025-12-07 11:46:44 -05:00
committed by GitHub
parent 5d799ceacc
commit 037b45fc17
17 changed files with 998 additions and 240 deletions

View File

@@ -57,11 +57,36 @@ export const load = (async (event) => {
country = (await res.json()) as Country;
}
// Attempt to fetch a short description (Wikipedia/Wikidata generated) for the country
let description: string | null = null;
try {
const descRes = await fetch(
`${endpoint}/api/generate/desc/?name=${encodeURIComponent(country.name)}`,
{
method: 'GET',
headers: {
Cookie: `sessionid=${sessionId}`
}
}
);
if (descRes.ok) {
const descJson = await descRes.json();
if (descJson && typeof descJson.extract === 'string') {
description = descJson.extract;
}
} else {
console.debug('No description available for', country.name);
}
} catch (e) {
console.debug('Failed to fetch description:', e);
}
return {
props: {
regions,
visitedRegions,
country
country,
description
}
};
}) satisfies PageServerLoad;