mirror of
https://github.com/immich-app/immich
synced 2025-10-17 18:19:27 +00:00
fix(web): show danger/warning when taken dates overlap (#22213)
This commit is contained in:
parent
6da039780e
commit
34339ea69f
2 changed files with 22 additions and 24 deletions
|
|
@ -1923,6 +1923,7 @@
|
||||||
"stacktrace": "Stacktrace",
|
"stacktrace": "Stacktrace",
|
||||||
"start": "Start",
|
"start": "Start",
|
||||||
"start_date": "Start date",
|
"start_date": "Start date",
|
||||||
|
"start_date_before_end_date": "Start date must be before end date",
|
||||||
"state": "State",
|
"state": "State",
|
||||||
"status": "Status",
|
"status": "Status",
|
||||||
"stop_casting": "Stop casting",
|
"stop_casting": "Stop casting",
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import DateInput from '$lib/elements/DateInput.svelte';
|
import DateInput from '$lib/elements/DateInput.svelte';
|
||||||
|
import { Text } from '@immich/ui';
|
||||||
import { t } from 'svelte-i18n';
|
import { t } from 'svelte-i18n';
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
|
|
@ -14,31 +15,27 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let { filters = $bindable() }: Props = $props();
|
let { filters = $bindable() }: Props = $props();
|
||||||
|
|
||||||
|
let invalid = $derived(filters.takenAfter && filters.takenBefore && filters.takenAfter > filters.takenBefore);
|
||||||
|
|
||||||
|
const inputClasses = $derived(
|
||||||
|
`immich-form-input w-full mt-1 hover:cursor-pointer ${invalid ? 'border border-danger' : ''}`,
|
||||||
|
);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div id="date-range-selection" class="grid grid-auto-fit-40 gap-5">
|
<div class="flex flex-col gap-1">
|
||||||
<label class="immich-form-label" for="start-date">
|
<div id="date-range-selection" class="grid grid-auto-fit-40 gap-5">
|
||||||
<span class="uppercase">{$t('start_date')}</span>
|
<label class="immich-form-label" for="start-date">
|
||||||
<DateInput
|
<span class="uppercase">{$t('start_date')}</span>
|
||||||
class="immich-form-input w-full mt-1 hover:cursor-pointer"
|
<DateInput class={inputClasses} type="date" id="start-date" name="start-date" bind:value={filters.takenAfter} />
|
||||||
type="date"
|
</label>
|
||||||
id="start-date"
|
|
||||||
name="start-date"
|
|
||||||
max={filters.takenBefore}
|
|
||||||
bind:value={filters.takenAfter}
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class="immich-form-label" for="end-date">
|
<label class="immich-form-label" for="end-date">
|
||||||
<span class="uppercase">{$t('end_date')}</span>
|
<span class="uppercase">{$t('end_date')}</span>
|
||||||
<DateInput
|
<DateInput class={inputClasses} type="date" id="end-date" name="end-date" bind:value={filters.takenBefore} />
|
||||||
class="immich-form-input w-full mt-1 hover:cursor-pointer"
|
</label>
|
||||||
type="date"
|
</div>
|
||||||
id="end-date"
|
{#if invalid}
|
||||||
name="end-date"
|
<Text color="danger">{$t('start_date_before_end_date')}</Text>
|
||||||
placeholder=""
|
{/if}
|
||||||
min={filters.takenAfter}
|
|
||||||
bind:value={filters.takenBefore}
|
|
||||||
/>
|
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue