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
354011f9
Commit
354011f9
authored
Jan 18, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: handle filter in user profile page
parent
8ed827cd
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
1 deletion
+16
-1
UserProfile.tsx
web/src/pages/UserProfile.tsx
+16
-1
No files found.
web/src/pages/UserProfile.tsx
View file @
354011f9
...
@@ -4,12 +4,14 @@ import { toast } from "react-hot-toast";
...
@@ -4,12 +4,14 @@ import { toast } from "react-hot-toast";
import
{
useParams
}
from
"react-router-dom"
;
import
{
useParams
}
from
"react-router-dom"
;
import
Empty
from
"@/components/Empty"
;
import
Empty
from
"@/components/Empty"
;
import
Icon
from
"@/components/Icon"
;
import
Icon
from
"@/components/Icon"
;
import
MemoFilter
from
"@/components/MemoFilter"
;
import
MemoView
from
"@/components/MemoView"
;
import
MemoView
from
"@/components/MemoView"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
MobileHeader
from
"@/components/MobileHeader"
;
import
UserAvatar
from
"@/components/UserAvatar"
;
import
UserAvatar
from
"@/components/UserAvatar"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
import
{
DEFAULT_MEMO_LIMIT
}
from
"@/helpers/consts"
;
import
{
getTimeStampByDate
}
from
"@/helpers/datetime"
;
import
{
getTimeStampByDate
}
from
"@/helpers/datetime"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
useLoading
from
"@/hooks/useLoading"
;
import
{
useFilterStore
}
from
"@/store/module"
;
import
{
useMemoList
,
useMemoStore
,
useUserStore
}
from
"@/store/v1"
;
import
{
useMemoList
,
useMemoStore
,
useUserStore
}
from
"@/store/v1"
;
import
{
User
}
from
"@/types/proto/api/v2/user_service"
;
import
{
User
}
from
"@/types/proto/api/v2/user_service"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
...
@@ -19,11 +21,13 @@ const UserProfile = () => {
...
@@ -19,11 +21,13 @@ const UserProfile = () => {
const
params
=
useParams
();
const
params
=
useParams
();
const
userStore
=
useUserStore
();
const
userStore
=
useUserStore
();
const
loadingState
=
useLoading
();
const
loadingState
=
useLoading
();
const
filterStore
=
useFilterStore
();
const
[
user
,
setUser
]
=
useState
<
User
>
();
const
[
user
,
setUser
]
=
useState
<
User
>
();
const
memoStore
=
useMemoStore
();
const
memoStore
=
useMemoStore
();
const
memoList
=
useMemoList
();
const
memoList
=
useMemoList
();
const
[
isRequesting
,
setIsRequesting
]
=
useState
(
true
);
const
[
isRequesting
,
setIsRequesting
]
=
useState
(
true
);
const
[
isComplete
,
setIsComplete
]
=
useState
(
false
);
const
[
isComplete
,
setIsComplete
]
=
useState
(
false
);
const
{
tag
:
tagQuery
,
text
:
textQuery
}
=
filterStore
.
state
;
const
sortedMemos
=
memoList
.
value
const
sortedMemos
=
memoList
.
value
.
sort
((
a
,
b
)
=>
getTimeStampByDate
(
b
.
displayTime
)
-
getTimeStampByDate
(
a
.
displayTime
))
.
sort
((
a
,
b
)
=>
getTimeStampByDate
(
b
.
displayTime
)
-
getTimeStampByDate
(
a
.
displayTime
))
.
sort
((
a
,
b
)
=>
Number
(
b
.
pinned
)
-
Number
(
a
.
pinned
));
.
sort
((
a
,
b
)
=>
Number
(
b
.
pinned
)
-
Number
(
a
.
pinned
));
...
@@ -53,7 +57,7 @@ const UserProfile = () => {
...
@@ -53,7 +57,7 @@ const UserProfile = () => {
memoList
.
reset
();
memoList
.
reset
();
fetchMemos
();
fetchMemos
();
},
[
user
]);
},
[
user
,
tagQuery
,
textQuery
]);
const
fetchMemos
=
async
()
=>
{
const
fetchMemos
=
async
()
=>
{
if
(
!
user
)
{
if
(
!
user
)
{
...
@@ -61,6 +65,16 @@ const UserProfile = () => {
...
@@ -61,6 +65,16 @@ const UserProfile = () => {
}
}
const
filters
=
[
`creator == "
${
user
.
name
}
"`
,
`row_status == "NORMAL"`
,
`order_by_pinned == true`
];
const
filters
=
[
`creator == "
${
user
.
name
}
"`
,
`row_status == "NORMAL"`
,
`order_by_pinned == true`
];
const
contentSearch
:
string
[]
=
[];
if
(
tagQuery
)
{
contentSearch
.
push
(
`"#
${
tagQuery
}
"`
);
}
if
(
textQuery
)
{
contentSearch
.
push
(
`"
${
textQuery
}
"`
);
}
if
(
contentSearch
.
length
>
0
)
{
filters
.
push
(
`content_search == [
${
contentSearch
.
join
(
", "
)}
]`
);
}
setIsRequesting
(
true
);
setIsRequesting
(
true
);
const
data
=
await
memoStore
.
fetchMemos
({
const
data
=
await
memoStore
.
fetchMemos
({
filter
:
filters
.
join
(
" && "
),
filter
:
filters
.
join
(
" && "
),
...
@@ -91,6 +105,7 @@ const UserProfile = () => {
...
@@ -91,6 +105,7 @@ const UserProfile = () => {
<
p
className=
"text-3xl text-black leading-none opacity-80 dark:text-gray-200"
>
{
user
?.
nickname
}
</
p
>
<
p
className=
"text-3xl text-black leading-none opacity-80 dark:text-gray-200"
>
{
user
?.
nickname
}
</
p
>
</
div
>
</
div
>
</
div
>
</
div
>
<
MemoFilter
className=
"px-2 pb-3"
/>
{
sortedMemos
.
map
((
memo
)
=>
(
{
sortedMemos
.
map
((
memo
)
=>
(
<
MemoView
key=
{
memo
.
id
}
memo=
{
memo
}
showVisibility
showPinnedStyle
/>
<
MemoView
key=
{
memo
.
id
}
memo=
{
memo
}
showVisibility
showPinnedStyle
/>
))
}
))
}
...
...
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