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
d0ac866e
Commit
d0ac866e
authored
Jun 05, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: update statistics view
parent
797f5a12
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
23 additions
and
11 deletions
+23
-11
UserStatisticsView.tsx
web/src/components/UserStatisticsView.tsx
+23
-11
No files found.
web/src/components/UserStatisticsView.tsx
View file @
d0ac866e
...
...
@@ -15,9 +15,10 @@ interface Props {
}
interface
UserMemoStats
{
link
s
:
number
;
t
odos
:
number
;
link
:
number
;
t
askList
:
number
;
code
:
number
;
incompleteTasks
:
number
;
}
const
UserStatisticsView
=
(
props
:
Props
)
=>
{
...
...
@@ -27,7 +28,7 @@ const UserStatisticsView = (props: Props) => {
const
filterStore
=
useFilterStore
();
const
[
memoAmount
,
setMemoAmount
]
=
useState
(
0
);
const
[
isRequesting
,
setIsRequesting
]
=
useState
(
false
);
const
[
memoStats
,
setMemoStats
]
=
useState
<
UserMemoStats
>
({
link
s
:
0
,
todos
:
0
,
code
:
0
});
const
[
memoStats
,
setMemoStats
]
=
useState
<
UserMemoStats
>
({
link
:
0
,
taskList
:
0
,
code
:
0
,
incompleteTasks
:
0
});
const
days
=
Math
.
ceil
((
Date
.
now
()
-
user
.
createTime
!
.
getTime
())
/
86400000
);
const
memos
=
Object
.
values
(
memoStore
.
getState
().
memoMapByName
);
const
filter
=
filterStore
.
state
;
...
...
@@ -37,17 +38,20 @@ const UserStatisticsView = (props: Props) => {
const
{
properties
}
=
await
memoServiceClient
.
listMemoProperties
({
name
:
`memos/-`
,
});
const
memoStats
:
UserMemoStats
=
{
link
s
:
0
,
todos
:
0
,
code
:
0
};
const
memoStats
:
UserMemoStats
=
{
link
:
0
,
taskList
:
0
,
code
:
0
,
incompleteTasks
:
0
};
properties
.
forEach
((
property
)
=>
{
if
(
property
.
hasLink
)
{
memoStats
.
link
s
+=
1
;
memoStats
.
link
+=
1
;
}
if
(
property
.
hasTaskList
)
{
memoStats
.
t
odos
+=
1
;
memoStats
.
t
askList
+=
1
;
}
if
(
property
.
hasCode
)
{
memoStats
.
code
+=
1
;
}
if
(
property
.
hasIncompleteTasks
)
{
memoStats
.
incompleteTasks
+=
1
;
}
});
setMemoStats
(
memoStats
);
setMemoAmount
(
properties
.
length
);
...
...
@@ -94,7 +98,7 @@ const UserStatisticsView = (props: Props) => {
<
div
className=
"w-full mt-1 flex flex-row justify-start items-center gap-x-2 gap-y-1 flex-wrap"
>
<
div
className=
{
clsx
(
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
opacity-80
"
,
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
shadow
"
,
filter
.
memoPropertyFilter
?.
hasLink
?
"bg-blue-50 dark:bg-blue-900 shadow"
:
""
,
)
}
onClick=
{
()
=>
filterStore
.
setMemoPropertyFilter
({
hasLink
:
!
filter
.
memoPropertyFilter
?.
hasLink
})
}
...
...
@@ -103,11 +107,11 @@ const UserStatisticsView = (props: Props) => {
<
Icon
.
Link
className=
"w-4 h-auto mr-1"
/>
<
span
className=
"block text-sm"
>
{
t
(
"memo.links"
)
}
</
span
>
</
div
>
<
span
className=
"text-sm truncate"
>
{
memoStats
.
link
s
}
</
span
>
<
span
className=
"text-sm truncate"
>
{
memoStats
.
link
}
</
span
>
</
div
>
<
div
className=
{
clsx
(
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
opacity-80
"
,
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
shadow
"
,
filter
.
memoPropertyFilter
?.
hasTaskList
?
"bg-blue-50 dark:bg-blue-900 shadow"
:
""
,
)
}
onClick=
{
()
=>
filterStore
.
setMemoPropertyFilter
({
hasTaskList
:
!
filter
.
memoPropertyFilter
?.
hasTaskList
})
}
...
...
@@ -116,11 +120,19 @@ const UserStatisticsView = (props: Props) => {
<
Icon
.
CheckCircle
className=
"w-4 h-auto mr-1"
/>
<
span
className=
"block text-sm"
>
{
t
(
"memo.to-do"
)
}
</
span
>
</
div
>
<
span
className=
"text-sm truncate"
>
{
memoStats
.
todos
}
</
span
>
{
memoStats
.
incompleteTasks
>
0
&&
(
<>
<
Tooltip
title=
{
"Incomplete tasks"
}
placement=
"top"
arrow
>
<
span
className=
"text-sm truncate"
>
{
memoStats
.
taskList
-
memoStats
.
incompleteTasks
}
</
span
>
</
Tooltip
>
<
span
className=
"text-sm font-mono opacity-50"
>
/
</
span
>
</>
)
}
<
span
className=
"text-sm truncate"
>
{
memoStats
.
taskList
}
</
span
>
</
div
>
<
div
className=
{
clsx
(
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
opacity-80
"
,
"w-auto border dark:border-zinc-800 pl-1 pr-1.5 rounded-md flex justify-between items-center cursor-pointer hover:
shadow
"
,
filter
.
memoPropertyFilter
?.
hasCode
?
"bg-blue-50 dark:bg-blue-900 shadow"
:
""
,
)
}
onClick=
{
()
=>
filterStore
.
setMemoPropertyFilter
({
hasCode
:
!
filter
.
memoPropertyFilter
?.
hasCode
})
}
...
...
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