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
dfa14689
Commit
dfa14689
authored
Nov 19, 2023
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: add click away event to date picker
parent
ec2995d6
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
4 deletions
+12
-4
DatePicker.tsx
web/src/components/kit/DatePicker.tsx
+10
-3
DailyReview.tsx
web/src/pages/DailyReview.tsx
+2
-1
No files found.
web/src/components/kit/DatePicker.tsx
View file @
dfa14689
import
{
Badge
,
Button
}
from
"@mui/joy"
;
import
{
Badge
,
Button
}
from
"@mui/joy"
;
import
classNames
from
"classnames"
;
import
classNames
from
"classnames"
;
import
{
useEffect
,
useState
}
from
"react"
;
import
{
useEffect
,
useRef
,
useState
}
from
"react"
;
import
useClickAway
from
"react-use/lib/useClickAway"
;
import
{
getMemoStats
}
from
"@/helpers/api"
;
import
{
getMemoStats
}
from
"@/helpers/api"
;
import
{
DAILY_TIMESTAMP
}
from
"@/helpers/consts"
;
import
{
DAILY_TIMESTAMP
}
from
"@/helpers/consts"
;
import
{
getDateStampByDate
,
isFutureDate
}
from
"@/helpers/datetime"
;
import
{
getDateStampByDate
,
isFutureDate
}
from
"@/helpers/datetime"
;
...
@@ -15,15 +16,21 @@ interface DatePickerProps {
...
@@ -15,15 +16,21 @@ interface DatePickerProps {
isFutureDateDisabled
?:
boolean
;
isFutureDateDisabled
?:
boolean
;
datestamp
:
number
;
datestamp
:
number
;
handleDateStampChange
:
(
datestamp
:
number
)
=>
void
;
handleDateStampChange
:
(
datestamp
:
number
)
=>
void
;
handleClickAway
:
()
=>
void
;
}
}
const
DatePicker
:
React
.
FC
<
DatePickerProps
>
=
(
props
:
DatePickerProps
)
=>
{
const
DatePicker
:
React
.
FC
<
DatePickerProps
>
=
(
props
:
DatePickerProps
)
=>
{
const
t
=
useTranslate
();
const
t
=
useTranslate
();
const
{
className
,
isFutureDateDisabled
,
datestamp
,
handleDateStampChange
}
=
props
;
const
{
className
,
isFutureDateDisabled
,
datestamp
,
handleDateStampChange
,
handleClickAway
}
=
props
;
const
containerRef
=
useRef
<
HTMLDivElement
>
(
null
);
const
[
currentDateStamp
,
setCurrentDateStamp
]
=
useState
<
number
>
(
getMonthFirstDayDateStamp
(
datestamp
));
const
[
currentDateStamp
,
setCurrentDateStamp
]
=
useState
<
number
>
(
getMonthFirstDayDateStamp
(
datestamp
));
const
[
countByDate
,
setCountByDate
]
=
useState
(
new
Map
());
const
[
countByDate
,
setCountByDate
]
=
useState
(
new
Map
());
const
user
=
useCurrentUser
();
const
user
=
useCurrentUser
();
useClickAway
(
containerRef
,
()
=>
{
handleClickAway
();
});
useEffect
(()
=>
{
useEffect
(()
=>
{
setCurrentDateStamp
(
getMonthFirstDayDateStamp
(
datestamp
));
setCurrentDateStamp
(
getMonthFirstDayDateStamp
(
datestamp
));
},
[
datestamp
]);
},
[
datestamp
]);
...
@@ -66,7 +73,7 @@ const DatePicker: React.FC<DatePickerProps> = (props: DatePickerProps) => {
...
@@ -66,7 +73,7 @@ const DatePicker: React.FC<DatePickerProps> = (props: DatePickerProps) => {
};
};
return
(
return
(
<
div
className=
{
`date-picker-wrapper ${className}`
}
>
<
div
ref=
{
containerRef
}
className=
{
`date-picker-wrapper ${className}`
}
>
<
div
className=
"date-picker-header"
>
<
div
className=
"date-picker-header"
>
<
Button
variant=
"plain"
color=
"neutral"
onClick=
{
()
=>
handleChangeMonthBtnClick
(
-
12
)
}
>
<
Button
variant=
"plain"
color=
"neutral"
onClick=
{
()
=>
handleChangeMonthBtnClick
(
-
12
)
}
>
<
Icon
.
ChevronsLeft
className=
"icon-img"
/>
<
Icon
.
ChevronsLeft
className=
"icon-img"
/>
...
...
web/src/pages/DailyReview.tsx
View file @
dfa14689
...
@@ -89,8 +89,9 @@ const DailyReview = () => {
...
@@ -89,8 +89,9 @@ const DailyReview = () => {
showDatePicker ? "" : "!hidden"
showDatePicker ? "" : "!hidden"
}`
}
}`
}
datestamp=
{
selectedDateStamp
}
datestamp=
{
selectedDateStamp
}
handleDateStampChange=
{
handleDataPickerChange
}
isFutureDateDisabled
isFutureDateDisabled
handleDateStampChange=
{
handleDataPickerChange
}
handleClickAway=
{
()
=>
toggleShowDatePicker
(
false
)
}
/>
/>
</
div
>
</
div
>
<
div
className=
"w-full h-auto flex flex-col justify-start items-start px-2 pb-4 bg-white dark:bg-zinc-700"
>
<
div
className=
"w-full h-auto flex flex-col justify-start items-start px-2 pb-4 bg-white dark:bg-zinc-700"
>
...
...
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