flotilla/src/lib/components/DateTimeInput.svelte

35 lines
907 B
Svelte
Raw Normal View History

2024-09-12 23:56:33 +00:00
<script lang="ts">
import {DateInput} from "date-picker-svelte"
2024-09-23 20:58:01 +00:00
import Icon from "@lib/components/Icon.svelte"
import Button from "@lib/components/Button.svelte"
2024-09-12 23:56:33 +00:00
export let initialValue: Date | undefined = undefined
export let value: Date | undefined = initialValue
const init = () => {
if (!value) {
value = new Date()
value.setMinutes(0, 0, 0)
}
}
const clear = () => {
value = undefined
}
</script>
2024-09-20 18:00:41 +00:00
<Button class="relative" on:click={init}>
2024-09-23 20:58:01 +00:00
<DateInput format="yyyy-MM-dd HH:mm" timePrecision="minute" placeholder="" bind:value />
<div class="absolute right-2 top-0 flex h-12 cursor-pointer items-center gap-2">
2024-09-12 23:56:33 +00:00
{#if value}
<Button on:click={clear} class="h-5">
<Icon icon="close-circle" />
</Button>
{:else}
2024-09-20 18:00:41 +00:00
<Button class="h-5">
2024-09-12 23:56:33 +00:00
<Icon icon="calendar-minimalistic" />
</Button>
{/if}
</div>
2024-09-20 18:00:41 +00:00
</Button>