mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
chore: tweak linter
This commit is contained in:
@@ -30,11 +30,7 @@ func (s *APIV2Service) ListInboxes(ctx context.Context, _ *apiv2pb.ListInboxesRe
|
|||||||
Inboxes: []*apiv2pb.Inbox{},
|
Inboxes: []*apiv2pb.Inbox{},
|
||||||
}
|
}
|
||||||
for _, inbox := range inboxes {
|
for _, inbox := range inboxes {
|
||||||
inboxMessage, err := s.convertInboxFromStore(ctx, inbox)
|
response.Inboxes = append(response.Inboxes, convertInboxFromStore(inbox))
|
||||||
if err != nil {
|
|
||||||
return nil, status.Errorf(codes.Internal, "failed to convert inbox from store: %v", err)
|
|
||||||
}
|
|
||||||
response.Inboxes = append(response.Inboxes, inboxMessage)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response, nil
|
return response, nil
|
||||||
@@ -66,12 +62,8 @@ func (s *APIV2Service) UpdateInbox(ctx context.Context, request *apiv2pb.UpdateI
|
|||||||
return nil, status.Errorf(codes.Internal, "failed to update inbox: %v", err)
|
return nil, status.Errorf(codes.Internal, "failed to update inbox: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
inboxMessage, err := s.convertInboxFromStore(ctx, inbox)
|
|
||||||
if err != nil {
|
|
||||||
return nil, status.Errorf(codes.Internal, "failed to convert inbox from store: %v", err)
|
|
||||||
}
|
|
||||||
return &apiv2pb.UpdateInboxResponse{
|
return &apiv2pb.UpdateInboxResponse{
|
||||||
Inbox: inboxMessage,
|
Inbox: convertInboxFromStore(inbox),
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +81,7 @@ func (s *APIV2Service) DeleteInbox(ctx context.Context, request *apiv2pb.DeleteI
|
|||||||
return &apiv2pb.DeleteInboxResponse{}, nil
|
return &apiv2pb.DeleteInboxResponse{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *APIV2Service) convertInboxFromStore(_ context.Context, inbox *store.Inbox) (*apiv2pb.Inbox, error) {
|
func convertInboxFromStore(inbox *store.Inbox) *apiv2pb.Inbox {
|
||||||
return &apiv2pb.Inbox{
|
return &apiv2pb.Inbox{
|
||||||
Name: fmt.Sprintf("%s%d", InboxNamePrefix, inbox.ID),
|
Name: fmt.Sprintf("%s%d", InboxNamePrefix, inbox.ID),
|
||||||
Sender: fmt.Sprintf("%s%d", UserNamePrefix, inbox.SenderID),
|
Sender: fmt.Sprintf("%s%d", UserNamePrefix, inbox.SenderID),
|
||||||
@@ -98,7 +90,7 @@ func (s *APIV2Service) convertInboxFromStore(_ context.Context, inbox *store.Inb
|
|||||||
CreateTime: timestamppb.New(time.Unix(inbox.CreatedTs, 0)),
|
CreateTime: timestamppb.New(time.Unix(inbox.CreatedTs, 0)),
|
||||||
Type: apiv2pb.Inbox_Type(inbox.Message.Type),
|
Type: apiv2pb.Inbox_Type(inbox.Message.Type),
|
||||||
ActivityId: inbox.Message.ActivityId,
|
ActivityId: inbox.Message.ActivityId,
|
||||||
}, nil
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func convertInboxStatusFromStore(status store.InboxStatus) apiv2pb.Inbox_Status {
|
func convertInboxStatusFromStore(status store.InboxStatus) apiv2pb.Inbox_Status {
|
||||||
|
38
web/src/components/ExploreSidebar/TagsSection.tsx
Normal file
38
web/src/components/ExploreSidebar/TagsSection.tsx
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import { tagServiceClient } from "@/grpcweb";
|
||||||
|
import { Tag } from "@/types/proto/api/v2/tag_service";
|
||||||
|
import Icon from "../Icon";
|
||||||
|
|
||||||
|
const TagsSection = () => {
|
||||||
|
const [tags, setTags] = useState<Tag[]>([]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
(async () => {
|
||||||
|
const { tags } = await tagServiceClient.listTags({});
|
||||||
|
setTags(tags);
|
||||||
|
})();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return (
|
||||||
|
tags.length > 0 && (
|
||||||
|
<div className="w-full mt-2 flex flex-col p-2 bg-gray-50 dark:bg-black rounded-lg">
|
||||||
|
<div className="w-full flex flex-row justify-between items-center">
|
||||||
|
<span className="text-gray-400 font-medium text-sm pl-1">Tags</span>
|
||||||
|
</div>
|
||||||
|
<div className="w-full flex flex-row justify-start items-center flex-wrap">
|
||||||
|
{tags.map((tag) => (
|
||||||
|
<div
|
||||||
|
key={tag.name}
|
||||||
|
className="w-auto max-w-full px-1 flex flex-row justify-start items-center text-gray-500 hover:bg-gray-100 dark:hover:bg-zinc-900 rounded-lg"
|
||||||
|
>
|
||||||
|
<Icon.Hash className="w-4 h-auto opacity-80" />
|
||||||
|
{tag.name}
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default TagsSection;
|
Reference in New Issue
Block a user