オリジナルの投稿日時 Safari でのバグ修正(#129) (#265)

Merge branch 'main' into feature/129

#129

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: #265
This commit was merged in pull request #265.
This commit is contained in:
2026-02-22 02:15:07 +09:00
parent 82302cd3d1
commit be983e4ad1
2 changed files with 49 additions and 32 deletions
@@ -1,5 +1,6 @@
import DateTimeField from '@/components/common/DateTimeField'
import Label from '@/components/common/Label'
import { Button } from '@/components/ui/button'
import type { FC } from 'react'
@@ -16,34 +17,52 @@ export default (({ originalCreatedFrom,
setOriginalCreatedBefore }: Props) => (
<div>
<Label></Label>
<div className="my-1">
<DateTimeField
className="mr-2"
value={originalCreatedFrom ?? undefined}
onChange={setOriginalCreatedFrom}
onBlur={ev => {
const v = ev.target.value
if (!(v))
return
const d = new Date (v)
if (d.getSeconds () === 0)
{
if (d.getMinutes () === 0 && d.getHours () === 0)
d.setDate (d.getDate () + 1)
else
d.setMinutes (d.getMinutes () + 1)
}
else
d.setSeconds (d.getSeconds () + 1)
setOriginalCreatedBefore (d.toISOString ())
}}/>
<div className="my-1 flex">
<div className="w-80">
<DateTimeField
className="mr-2"
value={originalCreatedFrom ?? undefined}
onChange={setOriginalCreatedFrom}
onBlur={ev => {
const v = ev.target.value
if (!(v))
return
const d = new Date (v)
if (d.getMinutes () === 0 && d.getHours () === 0)
d.setDate (d.getDate () + 1)
else
d.setMinutes (d.getMinutes () + 1)
setOriginalCreatedBefore (d.toISOString ())
}}/>
</div>
<div>
<Button
className="bg-gray-600 text-white rounded"
onClick={() => {
setOriginalCreatedFrom (null)
}}>
</Button>
</div>
</div>
<div className="my-1">
<DateTimeField
className="mr-2"
value={originalCreatedBefore ?? undefined}
onChange={setOriginalCreatedBefore}/>
<div className="my-1 flex">
<div className="w-80">
<DateTimeField
className="mr-2"
value={originalCreatedBefore ?? undefined}
onChange={setOriginalCreatedBefore}/>
</div>
<div>
<Button
className="bg-gray-600 text-white rounded"
onClick={() => {
setOriginalCreatedBefore (null)
}}>
</Button>
</div>
</div>
</div>)) satisfies FC<Props>
@@ -5,7 +5,7 @@ import { cn } from '@/lib/utils'
import type { FC, FocusEvent } from 'react'
const pad = (n: number) => n.toString ().padStart (2, '0')
const pad = (n: number): string => n.toString ().padStart (2, '0')
const toDateTimeLocalValue = (d: Date) => {
@@ -14,8 +14,7 @@ const toDateTimeLocalValue = (d: Date) => {
const day = pad (d.getDate ())
const h = pad (d.getHours ())
const min = pad (d.getMinutes ())
const s = pad (d.getSeconds ())
return `${ y }-${ m }-${ day }T${ h }:${ min }:${ s }`
return `${ y }-${ m }-${ day }T${ h }:${ min }:00`
}
@@ -37,7 +36,6 @@ export default (({ value, onChange, className, onBlur }: Props) => {
<input
className={cn ('border rounded p-2', className)}
type="datetime-local"
step={1}
value={local}
onChange={ev => {
const v = ev.target.value