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
db63b194
Commit
db63b194
authored
Jul 23, 2025
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: fix creator id format
parent
9ea2f9f6
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
67 additions
and
458 deletions
+67
-458
memo_service.proto
proto/api/v1/memo_service.proto
+3
-3
memo_service.pb.go
proto/gen/api/v1/memo_service.pb.go
+6
-6
openapi.yaml
proto/gen/openapi.yaml
+24
-78
PagedMemoList.tsx
web/src/components/PagedMemoList/PagedMemoList.tsx
+2
-13
Archived.tsx
web/src/pages/Archived.tsx
+0
-1
Home.tsx
web/src/pages/Home.tsx
+2
-2
UserProfile.tsx
web/src/pages/UserProfile.tsx
+1
-2
memo_service.ts
web/src/types/proto/api/v1/memo_service.ts
+9
-9
descriptor.ts
web/src/types/proto/google/protobuf/descriptor.ts
+20
-344
No files found.
proto/api/v1/memo_service.proto
View file @
db63b194
...
...
@@ -289,15 +289,15 @@ message ListMemosRequest {
// Optional. The order to sort results by.
// Default to "display_time desc".
// Example: "display_time desc" or "create_time asc"
string
order_by
=
5
[(
google.api.field_behavior
)
=
OPTIONAL
];
string
order_by
=
4
[(
google.api.field_behavior
)
=
OPTIONAL
];
// Optional. Filter to apply to the list results.
// Filter is a CEL expression to filter memos.
// Refer to `Shortcut.filter`.
string
filter
=
6
[(
google.api.field_behavior
)
=
OPTIONAL
];
string
filter
=
5
[(
google.api.field_behavior
)
=
OPTIONAL
];
// Optional. If true, show deleted memos in the response.
bool
show_deleted
=
7
[(
google.api.field_behavior
)
=
OPTIONAL
];
bool
show_deleted
=
6
[(
google.api.field_behavior
)
=
OPTIONAL
];
}
message
ListMemosResponse
{
...
...
proto/gen/api/v1/memo_service.pb.go
View file @
db63b194
...
...
@@ -565,13 +565,13 @@ type ListMemosRequest struct {
// Optional. The order to sort results by.
// Default to "display_time desc".
// Example: "display_time desc" or "create_time asc"
OrderBy
string
`protobuf:"bytes,
5
,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
OrderBy
string
`protobuf:"bytes,
4
,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
// Optional. Filter to apply to the list results.
// Filter is a CEL expression to filter memos.
// Refer to `Shortcut.filter`.
Filter
string
`protobuf:"bytes,
6
,opt,name=filter,proto3" json:"filter,omitempty"`
Filter
string
`protobuf:"bytes,
5
,opt,name=filter,proto3" json:"filter,omitempty"`
// Optional. If true, show deleted memos in the response.
ShowDeleted
bool
`protobuf:"varint,
7
,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"`
ShowDeleted
bool
`protobuf:"varint,
6
,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"`
unknownFields
protoimpl
.
UnknownFields
sizeCache
protoimpl
.
SizeCache
}
...
...
@@ -2059,9 +2059,9 @@ const file_api_v1_memo_service_proto_rawDesc = "" +
"
\n
"
+
"page_token
\x18\x02
\x01
(
\t
B
\x03\xe0
A
\x01
R
\t
pageToken
\x12
.
\n
"
+
"
\x05
state
\x18\x03
\x01
(
\x0e
2
\x13
.memos.api.v1.StateB
\x03\xe0
A
\x01
R
\x05
state
\x12\x1e\n
"
+
"
\b
order_by
\x18\x0
5
\x01
(
\t
B
\x03\xe0
A
\x01
R
\a
orderBy
\x12\x1b\n
"
+
"
\x06
filter
\x18\x0
6
\x01
(
\t
B
\x03\xe0
A
\x01
R
\x06
filter
\x12
&
\n
"
+
"
\f
show_deleted
\x18\
a
\x01
(
\b
B
\x03\xe0
A
\x01
R
\v
showDeleted
\"\x84\x01\n
"
+
"
\b
order_by
\x18\x0
4
\x01
(
\t
B
\x03\xe0
A
\x01
R
\a
orderBy
\x12\x1b\n
"
+
"
\x06
filter
\x18\x0
5
\x01
(
\t
B
\x03\xe0
A
\x01
R
\x06
filter
\x12
&
\n
"
+
"
\f
show_deleted
\x18\
x06
\x01
(
\b
B
\x03\xe0
A
\x01
R
\v
showDeleted
\"\x84\x01\n
"
+
"
\x11
ListMemosResponse
\x12
(
\n
"
+
"
\x05
memos
\x18\x01
\x03
(
\v
2
\x12
.memos.api.v1.MemoR
\x05
memos
\x12
&
\n
"
+
"
\x0f
next_page_token
\x18\x02
\x01
(
\t
R
\r
nextPageToken
\x12\x1d\n
"
+
...
...
proto/gen/openapi.yaml
View file @
db63b194
This diff is collapsed.
Click to expand it.
web/src/components/PagedMemoList/PagedMemoList.tsx
View file @
db63b194
...
...
@@ -18,7 +18,6 @@ import MemoEditor from "../MemoEditor";
interface
Props
{
renderer
:
(
memo
:
Memo
)
=>
JSX
.
Element
;
listSort
?:
(
list
:
Memo
[])
=>
Memo
[];
owner
?:
string
;
state
?:
State
;
orderBy
?:
string
;
filter
?:
string
;
...
...
@@ -47,20 +46,10 @@ const PagedMemoList = observer((props: Props) => {
setIsRequesting
(
true
);
try
{
const
filters
=
[];
if
(
props
.
owner
)
{
// Extract user ID from owner name (format: users/{user_id})
const
userId
=
props
.
owner
.
replace
(
"users/"
,
""
);
filters
.
push
(
`creator_id ==
${
userId
}
`
);
}
if
(
props
.
filter
)
{
filters
.
push
(
props
.
filter
);
}
const
response
=
await
memoStore
.
fetchMemos
({
state
:
props
.
state
||
State
.
NORMAL
,
orderBy
:
props
.
orderBy
||
"display_time desc"
,
filter
:
filters
.
length
>
0
?
filters
.
join
(
" && "
)
:
undefined
,
filter
:
props
.
filter
,
pageSize
:
props
.
pageSize
||
DEFAULT_LIST_MEMOS_PAGE_SIZE
,
pageToken
,
});
...
...
@@ -110,7 +99,7 @@ const PagedMemoList = observer((props: Props) => {
// Initial load and reload when props change
useEffect
(()
=>
{
refreshList
();
},
[
props
.
owner
,
props
.
state
,
props
.
orderBy
,
props
.
filter
,
props
.
pageSize
]);
},
[
props
.
state
,
props
.
orderBy
,
props
.
filter
,
props
.
pageSize
]);
// Auto-fetch more content when list changes and page isn't full
useEffect
(()
=>
{
...
...
web/src/pages/Archived.tsx
View file @
db63b194
...
...
@@ -36,7 +36,6 @@ const Archived = observer(() => {
:
dayjs
(
b
.
displayTime
).
unix
()
-
dayjs
(
a
.
displayTime
).
unix
(),
)
}
owner=
{
user
.
name
}
state=
{
State
.
ARCHIVED
}
orderBy=
{
viewStore
.
state
.
orderByTimeAsc
?
"display_time asc"
:
"display_time desc"
}
filter=
{
memoFitler
}
...
...
web/src/pages/Home.tsx
View file @
db63b194
...
...
@@ -23,7 +23,7 @@ const Home = observer(() => {
const
selectedShortcut
=
userStore
.
state
.
shortcuts
.
find
((
shortcut
)
=>
getShortcutId
(
shortcut
.
name
)
===
memoFilterStore
.
shortcut
);
const
memoFilter
=
useMemo
(()
=>
{
const
conditions
=
[
`creator_id ==
"
${
extractUserIdFromName
(
user
.
name
)}
"
`
];
const
conditions
=
[
`creator_id ==
${
extractUserIdFromName
(
user
.
name
)}
`
];
if
(
selectedShortcut
?.
filter
)
{
conditions
.
push
(
selectedShortcut
.
filter
);
}
...
...
@@ -50,6 +50,7 @@ const Home = observer(() => {
conditions
.
push
(
`
${
factor
}
>=
${
timestampAfter
}
&&
${
factor
}
<
${
timestampAfter
+
60
*
60
*
24
}
`
);
}
}
console
.
log
(
"conditions"
,
conditions
);
return
conditions
.
length
>
0
?
conditions
.
join
(
" && "
)
:
undefined
;
},
[
memoFilterStore
.
filters
,
selectedShortcut
?.
filter
]);
...
...
@@ -66,7 +67,6 @@ const Home = observer(() => {
:
dayjs
(
b
.
displayTime
).
unix
()
-
dayjs
(
a
.
displayTime
).
unix
(),
)
}
owner=
{
user
.
name
}
orderBy=
{
viewStore
.
state
.
orderByTimeAsc
?
"display_time asc"
:
"display_time desc"
}
filter=
{
memoFilter
}
/>
...
...
web/src/pages/UserProfile.tsx
View file @
db63b194
...
...
@@ -47,7 +47,7 @@ const UserProfile = observer(() => {
return
undefined
;
}
const
conditions
=
[
`creator_id ==
"
${
extractUserIdFromName
(
user
.
name
)}
"
`
];
const
conditions
=
[
`creator_id ==
${
extractUserIdFromName
(
user
.
name
)}
`
];
for
(
const
filter
of
memoFilterStore
.
filters
)
{
if
(
filter
.
factor
===
"contentSearch"
)
{
conditions
.
push
(
`content.contains("
${
filter
.
value
}
")`
);
...
...
@@ -101,7 +101,6 @@ const UserProfile = observer(() => {
:
dayjs
(
b
.
displayTime
).
unix
()
-
dayjs
(
a
.
displayTime
).
unix
(),
)
}
owner=
{
user
.
name
}
orderBy=
{
viewStore
.
state
.
orderByTimeAsc
?
"display_time asc"
:
"display_time desc"
}
filter=
{
memoFilter
}
/>
...
...
web/src/types/proto/api/v1/memo_service.ts
View file @
db63b194
...
...
@@ -1099,13 +1099,13 @@ export const ListMemosRequest: MessageFns<ListMemosRequest> = {
writer
.
uint32
(
24
).
int32
(
stateToNumber
(
message
.
state
));
}
if
(
message
.
orderBy
!==
""
)
{
writer
.
uint32
(
42
).
string
(
message
.
orderBy
);
writer
.
uint32
(
34
).
string
(
message
.
orderBy
);
}
if
(
message
.
filter
!==
""
)
{
writer
.
uint32
(
50
).
string
(
message
.
filter
);
writer
.
uint32
(
42
).
string
(
message
.
filter
);
}
if
(
message
.
showDeleted
!==
false
)
{
writer
.
uint32
(
56
).
bool
(
message
.
showDeleted
);
writer
.
uint32
(
48
).
bool
(
message
.
showDeleted
);
}
return
writer
;
},
...
...
@@ -1141,24 +1141,24 @@ export const ListMemosRequest: MessageFns<ListMemosRequest> = {
message
.
state
=
stateFromJSON
(
reader
.
int32
());
continue
;
}
case
5
:
{
if
(
tag
!==
42
)
{
case
4
:
{
if
(
tag
!==
34
)
{
break
;
}
message
.
orderBy
=
reader
.
string
();
continue
;
}
case
6
:
{
if
(
tag
!==
50
)
{
case
5
:
{
if
(
tag
!==
42
)
{
break
;
}
message
.
filter
=
reader
.
string
();
continue
;
}
case
7
:
{
if
(
tag
!==
56
)
{
case
6
:
{
if
(
tag
!==
48
)
{
break
;
}
...
...
web/src/types/proto/google/protobuf/descriptor.ts
View file @
db63b194
This diff is collapsed.
Click to expand it.
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