feat(web): add geolocation utility (#20758)

* feat(geolocation):  add geolocation utility

* feat(web): geolocation utility - fix code review - 1

* feat(web): geolocation utility - fix code review - 2

* chore: cleanup

* chore: feedback

* feat(web): add animation and text

animation on locations change and action text on thumbnail

* styling, messages and filtering

* selected color

* format i18n

* fix lint

---------

Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Alex <alex.tran1502@gmail.com>
This commit is contained in:
Johann
2025-08-28 18:54:11 +02:00
committed by GitHub
parent 80fa5ec198
commit 662d44536e
17 changed files with 733 additions and 49 deletions

View File

@@ -0,0 +1,33 @@
<script lang="ts">
import { Button, HStack, Modal, ModalBody, ModalFooter } from '@immich/ui';
import { t } from 'svelte-i18n';
interface Props {
location: { latitude: number | undefined; longitude: number | undefined };
assetCount: number;
onClose: (confirm?: true) => void;
}
let { location, assetCount, onClose }: Props = $props();
</script>
<Modal title={$t('confirm')} size="small" {onClose}>
<ModalBody>
<p>
{$t('update_location_action_prompt', {
values: {
count: assetCount,
},
})}
</p>
<p>- {$t('latitude')}: {location.latitude}</p>
<p>- {$t('longitude')}: {location.longitude}</p>
</ModalBody>
<ModalFooter>
<HStack fullWidth>
<Button shape="round" color="secondary" fullWidth onclick={() => onClose()}>{$t('cancel')}</Button>
<Button shape="round" type="submit" fullWidth onclick={() => onClose(true)}>{$t('confirm')}</Button>
</HStack>
</ModalFooter>
</Modal>