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
b79f626a
Commit
b79f626a
authored
Mar 31, 2024
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: fix memo comment inbox
parent
ec35a42f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
24 deletions
+19
-24
inbox_service.go
server/route/api/v2/inbox_service.go
+3
-17
MemoCommentMessage.tsx
web/src/components/Inbox/MemoCommentMessage.tsx
+14
-6
SignUp.tsx
web/src/pages/SignUp.tsx
+2
-1
No files found.
server/route/api/v2/inbox_service.go
View file @
b79f626a
...
...
@@ -5,7 +5,6 @@ import (
"fmt"
"time"
"github.com/pkg/errors"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/timestamppb"
...
...
@@ -90,24 +89,11 @@ func (s *APIV2Service) DeleteInbox(ctx context.Context, request *apiv2pb.DeleteI
return
&
apiv2pb
.
DeleteInboxResponse
{},
nil
}
func
(
s
*
APIV2Service
)
convertInboxFromStore
(
ctx
context
.
Context
,
inbox
*
store
.
Inbox
)
(
*
apiv2pb
.
Inbox
,
error
)
{
sender
,
err
:=
s
.
Store
.
GetUser
(
ctx
,
&
store
.
FindUser
{
ID
:
&
inbox
.
SenderID
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to get sender"
)
}
receiver
,
err
:=
s
.
Store
.
GetUser
(
ctx
,
&
store
.
FindUser
{
ID
:
&
inbox
.
ReceiverID
,
})
if
err
!=
nil
{
return
nil
,
errors
.
Wrap
(
err
,
"failed to get receiver"
)
}
func
(
s
*
APIV2Service
)
convertInboxFromStore
(
_
context
.
Context
,
inbox
*
store
.
Inbox
)
(
*
apiv2pb
.
Inbox
,
error
)
{
return
&
apiv2pb
.
Inbox
{
Name
:
fmt
.
Sprintf
(
"%s%d"
,
InboxNamePrefix
,
inbox
.
ID
),
Sender
:
fmt
.
Sprintf
(
"%s%d"
,
UserNamePrefix
,
sender
.
ID
),
Receiver
:
fmt
.
Sprintf
(
"%s%d"
,
UserNamePrefix
,
receiver
.
ID
),
Sender
:
fmt
.
Sprintf
(
"%s%d"
,
UserNamePrefix
,
inbox
.
Sender
ID
),
Receiver
:
fmt
.
Sprintf
(
"%s%d"
,
UserNamePrefix
,
inbox
.
Receiver
ID
),
Status
:
convertInboxStatusFromStore
(
inbox
.
Status
),
CreateTime
:
timestamppb
.
New
(
time
.
Unix
(
inbox
.
CreatedTs
,
0
)),
Type
:
apiv2pb
.
Inbox_Type
(
inbox
.
Message
.
Type
),
...
...
web/src/components/Inbox/MemoCommentMessage.tsx
View file @
b79f626a
...
...
@@ -4,9 +4,10 @@ import { useEffect, useState } from "react";
import
toast
from
"react-hot-toast"
;
import
{
activityServiceClient
}
from
"@/grpcweb"
;
import
useNavigateTo
from
"@/hooks/useNavigateTo"
;
import
{
MemoNamePrefix
,
useInboxStore
,
useMemoStore
}
from
"@/store/v1"
;
import
{
MemoNamePrefix
,
useInboxStore
,
useMemoStore
,
useUserStore
}
from
"@/store/v1"
;
import
{
Inbox
,
Inbox_Status
}
from
"@/types/proto/api/v2/inbox_service"
;
import
{
Memo
}
from
"@/types/proto/api/v2/memo_service"
;
import
{
User
}
from
"@/types/proto/api/v2/user_service"
;
import
{
useTranslate
}
from
"@/utils/i18n"
;
import
Icon
from
"../Icon"
;
...
...
@@ -19,7 +20,9 @@ const MemoCommentMessage = ({ inbox }: Props) => {
const
navigateTo
=
useNavigateTo
();
const
inboxStore
=
useInboxStore
();
const
memoStore
=
useMemoStore
();
const
userStore
=
useUserStore
();
const
[
relatedMemo
,
setRelatedMemo
]
=
useState
<
Memo
|
undefined
>
(
undefined
);
const
[
sender
,
setSender
]
=
useState
<
User
|
undefined
>
(
undefined
);
useEffect
(()
=>
{
if
(
!
inbox
.
activityId
)
{
...
...
@@ -33,11 +36,15 @@ const MemoCommentMessage = ({ inbox }: Props) => {
if
(
!
activity
)
{
return
;
}
if
(
activity
.
payload
?.
memoComment
?.
relatedMemoId
)
{
const
memo
=
await
memoStore
.
getOrFetchMemoByName
(
`
${
MemoNamePrefix
}${
activity
.
payload
?.
memoComment
?.
relatedMemoId
}
`, {
if
(
activity
.
payload
?.
memoComment
)
{
const
memoCommentPayload
=
activity
.
payload
.
memoComment
;
const
relatedMemoId
=
memoCommentPayload
.
relatedMemoId
;
const
memo
=
await
memoStore
.
getOrFetchMemoByName
(
`
${
MemoNamePrefix
}${
relatedMemoId
}
`
,
{
skipStore
:
true
,
});
setRelatedMemo
(
memo
);
const
sender
=
await
userStore
.
getOrFetchUserByName
(
inbox
.
sender
);
setSender
(
sender
);
}
})();
},
[
inbox
.
activityId
]);
...
...
@@ -47,7 +54,7 @@ const MemoCommentMessage = ({ inbox }: Props) => {
return
;
}
navigateTo(`
/
m
/
$
{
relatedMemo
.
name
}
`);
navigateTo
(
`/m/
${
relatedMemo
.
uid
}
`
);
if
(
inbox
.
status
===
Inbox_Status
.
UNREAD
)
{
handleArchiveMessage
(
true
);
}
...
...
@@ -104,8 +111,9 @@ const MemoCommentMessage = ({ inbox }: Props) => {
onClick=
{
handleNavigateToMemo
}
>
{
t
(
"inbox.memo-comment"
,
{
user: inbox.sender,
memo: `
memos
#
$
{
relatedMemo
?.
name
}
`,
user
:
sender
?.
nickname
||
sender
?.
username
,
memo
:
`memos\/${relatedMemo?.uid}`
,
interpolation
:
{
escapeValue
:
false
},
})
}
</
p
>
</
div
>
...
...
web/src/pages/SignUp.tsx
View file @
b79f626a
import
{
Button
,
Input
}
from
"@mui/joy"
;
import
{
ClientError
}
from
"nice-grpc-web"
;
import
{
useState
}
from
"react"
;
import
{
toast
}
from
"react-hot-toast"
;
import
{
Link
}
from
"react-router-dom"
;
...
...
@@ -64,7 +65,7 @@ const SignUp = () => {
}
}
catch
(
error
:
any
)
{
console
.
error
(
error
);
toast
.
error
(
error
.
response
.
data
.
message
||
error
.
message
||
t
(
"message.signup-failed"
));
toast
.
error
(
(
error
as
ClientError
).
details
||
t
(
"message.signup-failed"
));
}
actionBtnLoadingState
.
setFinish
();
};
...
...
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