Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
canifa_note
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vũ Hoàng Anh
canifa_note
Commits
94d1e205
Commit
94d1e205
authored
Jun 03, 2025
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update date time format
parent
6d319900
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
17 additions
and
17 deletions
+17
-17
DateTimeInput.tsx
web/src/components/DateTimeInput.tsx
+9
-9
index.tsx
web/src/components/MemoEditor/index.tsx
+8
-8
No files found.
web/src/components/DateTimeInput.tsx
View file @
94d1e205
import
dayjs
from
"dayjs"
;
import
dayjs
from
"dayjs"
;
import
{
isEqual
}
from
"lodash-es"
;
import
toast
from
"react-hot-toast"
;
import
toast
from
"react-hot-toast"
;
import
{
cn
}
from
"@/utils"
;
import
{
cn
}
from
"@/utils"
;
const
DATE_TIME_FORMAT
=
"M/D/YYYY, H:mm:ss"
;
// convert Date to datetime string.
// convert Date to datetime string.
const
formatDate
=
(
date
:
Date
|
undefined
):
string
=>
{
const
formatDate
=
(
date
:
Date
):
string
=>
{
return
dayjs
(
date
).
format
(
"M/D/YYYY, H:mm:ss"
);
return
dayjs
(
date
).
format
(
DATE_TIME_FORMAT
);
};
};
interface
Props
{
interface
Props
{
value
:
Date
|
undefined
;
value
:
Date
;
originalValue
:
Date
|
undefined
;
onChange
:
(
date
:
Date
)
=>
void
;
onChange
:
(
date
:
Date
)
=>
void
;
}
}
const
DateTimeInput
:
React
.
FC
<
Props
>
=
({
value
,
o
riginalValue
,
o
nChange
})
=>
{
const
DateTimeInput
:
React
.
FC
<
Props
>
=
({
value
,
onChange
})
=>
{
return
(
return
(
<
input
<
input
type=
"text"
type=
"text"
className=
{
cn
(
className=
{
cn
(
"px-1 bg-transparent rounded text-xs transition-all"
,
"px-1 bg-transparent rounded text-xs transition-all"
,
"border-transparent outline-none focus:border-gray-300 dark:focus:border-zinc-700"
,
"border-transparent outline-none focus:border-gray-300 dark:focus:border-zinc-700"
,
!
isEqual
(
value
,
originalValue
)
&&
"border-gray-300 dark:border-zinc-700"
,
"border"
,
"border"
,
)
}
)
}
defaultValue=
{
formatDate
(
value
)
}
defaultValue=
{
formatDate
(
value
)
}
onBlur=
{
(
e
)
=>
{
onBlur=
{
(
e
)
=>
{
const
inputValue
=
e
.
target
.
value
;
const
inputValue
=
e
.
target
.
value
;
if
(
inputValue
)
{
if
(
inputValue
)
{
const
date
=
new
Date
(
inputValue
);
const
date
=
dayjs
(
inputValue
,
DATE_TIME_FORMAT
,
true
).
toDate
();
// Check if the date is valid.
if
(
!
isNaN
(
date
.
getTime
()))
{
if
(
!
isNaN
(
date
.
getTime
()))
{
onChange
(
date
);
onChange
(
date
);
}
else
{
}
else
{
...
@@ -37,7 +37,7 @@ const DateTimeInput: React.FC<Props> = ({ value, originalValue, onChange }) => {
...
@@ -37,7 +37,7 @@ const DateTimeInput: React.FC<Props> = ({ value, originalValue, onChange }) => {
}
}
}
}
}
}
}
}
placeholder=
"M/D/YYYY, H:mm:ss"
placeholder=
{
DATE_TIME_FORMAT
}
/>
/>
);
);
};
};
...
...
web/src/components/MemoEditor/index.tsx
View file @
94d1e205
...
@@ -74,8 +74,6 @@ const MemoEditor = observer((props: Props) => {
...
@@ -74,8 +74,6 @@ const MemoEditor = observer((props: Props) => {
});
});
const
[
createTime
,
setCreateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
createTime
,
setCreateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
updateTime
,
setUpdateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
updateTime
,
setUpdateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
originalCreateTime
,
setOriginalCreateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
originalUpdateTime
,
setOriginalUpdateTime
]
=
useState
<
Date
|
undefined
>
();
const
[
hasContent
,
setHasContent
]
=
useState
<
boolean
>
(
false
);
const
[
hasContent
,
setHasContent
]
=
useState
<
boolean
>
(
false
);
const
[
isVisibilitySelectorOpen
,
setIsVisibilitySelectorOpen
]
=
useState
(
false
);
const
[
isVisibilitySelectorOpen
,
setIsVisibilitySelectorOpen
]
=
useState
(
false
);
const
editorRef
=
useRef
<
EditorRefActions
>
(
null
);
const
editorRef
=
useRef
<
EditorRefActions
>
(
null
);
...
@@ -125,8 +123,6 @@ const MemoEditor = observer((props: Props) => {
...
@@ -125,8 +123,6 @@ const MemoEditor = observer((props: Props) => {
handleEditorFocus
();
handleEditorFocus
();
setCreateTime
(
memo
.
createTime
);
setCreateTime
(
memo
.
createTime
);
setUpdateTime
(
memo
.
updateTime
);
setUpdateTime
(
memo
.
updateTime
);
setOriginalCreateTime
(
memo
.
createTime
);
setOriginalUpdateTime
(
memo
.
updateTime
);
setState
((
prevState
)
=>
({
setState
((
prevState
)
=>
({
...
prevState
,
...
prevState
,
memoVisibility
:
memo
.
visibility
,
memoVisibility
:
memo
.
visibility
,
...
@@ -550,14 +546,18 @@ const MemoEditor = observer((props: Props) => {
...
@@ -550,14 +546,18 @@ const MemoEditor = observer((props: Props) => {
{
memoName
&&
(
{
memoName
&&
(
<
div
className=
"w-full -mt-1 mb-4 text-xs leading-5 px-4 opacity-60 font-mono text-gray-500 dark:text-zinc-500"
>
<
div
className=
"w-full -mt-1 mb-4 text-xs leading-5 px-4 opacity-60 font-mono text-gray-500 dark:text-zinc-500"
>
<
div
className=
"grid grid-cols-[auto_1fr] gap-x-4 gap-y-0.5 items-center"
>
<
div
className=
"grid grid-cols-[auto_1fr] gap-x-4 gap-y-0.5 items-center"
>
{
!
isEqual
(
createTime
,
updateTime
)
&&
(
{
!
isEqual
(
createTime
,
updateTime
)
&&
updateTime
&&
(
<>
<>
<
span
className=
"text-left"
>
Updated
</
span
>
<
span
className=
"text-left"
>
Updated
</
span
>
<
DateTimeInput
value=
{
updateTime
}
originalValue=
{
originalUpdateTime
}
onChange=
{
setUpdateTime
}
/>
<
DateTimeInput
value=
{
updateTime
}
onChange=
{
setUpdateTime
}
/>
</>
)
}
{
createTime
&&
(
<>
<
span
className=
"text-left"
>
Created
</
span
>
<
DateTimeInput
value=
{
createTime
}
onChange=
{
setCreateTime
}
/>
</>
</>
)
}
)
}
<
span
className=
"text-left"
>
Created
</
span
>
<
DateTimeInput
value=
{
createTime
}
originalValue=
{
originalCreateTime
}
onChange=
{
setCreateTime
}
/>
<
span
className=
"text-left"
>
ID
</
span
>
<
span
className=
"text-left"
>
ID
</
span
>
<
span
<
span
className=
"px-1 border border-transparent cursor-default"
className=
"px-1 border border-transparent cursor-default"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment