Browse Source

fix: date picker default value issue

pull/7173/head
Ramesh Mane 9 months ago
parent
commit
2b715d2b19
  1. 29
      packages/nc-gui/components/cell/DateTimePicker.vue

29
packages/nc-gui/components/cell/DateTimePicker.vue

@ -51,8 +51,13 @@ const dateTimeFormat = computed(() => {
let localModelValue = modelValue ? dayjs(modelValue).utc().local() : undefined let localModelValue = modelValue ? dayjs(modelValue).utc().local() : undefined
const tempLocalValue = ref<dayjs.Dayjs>()
const localState = computed({ const localState = computed({
get() { get() {
if (!modelValue && tempLocalValue.value) {
return tempLocalValue.value
}
if (!modelValue) { if (!modelValue) {
return undefined return undefined
} }
@ -133,10 +138,11 @@ watch(
onClickOutside(document.querySelector(`.${randomClass}`)! as HTMLDivElement, () => (open.value = false)) onClickOutside(document.querySelector(`.${randomClass}`)! as HTMLDivElement, () => (open.value = false))
if (!modelValue) { if (!modelValue) {
localState.value = dayjs(new Date()) tempLocalValue.value = dayjs(new Date())
} }
} else { } else {
editable.value = false editable.value = false
tempLocalValue.value = undefined
} }
}, },
{ flush: 'post' }, { flush: 'post' },
@ -244,6 +250,22 @@ const cellClickHook = inject(CellClickHookInj, null)
const cellClickHandler = () => { const cellClickHandler = () => {
open.value = (active.value || editable.value) && !open.value open.value = (active.value || editable.value) && !open.value
} }
function okHandler(val: dayjs.Dayjs | string) {
if (!val) {
emit('update:modelValue', null)
return
}
if (dayjs(val).isValid()) {
// setting localModelValue to cater NOW function in date picker
localModelValue = dayjs(val)
// send the payload in UTC format
emit('update:modelValue', dayjs(val).utc().format('YYYY-MM-DD HH:mm:ssZ'))
}
open.value = !open.value
}
onMounted(() => { onMounted(() => {
cellClickHook?.on(cellClickHandler) cellClickHook?.on(cellClickHandler)
}) })
@ -265,8 +287,7 @@ const isColDisabled = computed(() => {
<template> <template>
<a-date-picker <a-date-picker
v-model:value="localState" :value="localState"
:default-picker-value="dayjs(new Date())"
:disabled="isColDisabled" :disabled="isColDisabled"
:show-time="true" :show-time="true"
:bordered="false" :bordered="false"
@ -279,7 +300,7 @@ const isColDisabled = computed(() => {
:dropdown-class-name="`${randomClass} nc-picker-datetime children:border-1 children:border-gray-200 ${open ? 'active' : ''}`" :dropdown-class-name="`${randomClass} nc-picker-datetime children:border-1 children:border-gray-200 ${open ? 'active' : ''}`"
:open="isOpen" :open="isOpen"
@click="clickHandler" @click="clickHandler"
@ok="open = !open" @ok="okHandler"
> >
<template #suffixIcon></template> <template #suffixIcon></template>
</a-date-picker> </a-date-picker>

Loading…
Cancel
Save