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
1caaef1c
Commit
1caaef1c
authored
Jan 10, 2025
by
johnnyjoy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: fix memo compact mode
parent
972ebbae
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
22 deletions
+32
-22
memo_service.go
server/router/api/v1/memo_service.go
+7
-3
TaskListItem.tsx
web/src/components/MemoContent/TaskListItem.tsx
+2
-1
index.tsx
web/src/components/MemoContent/index.tsx
+4
-9
index.tsx
web/src/components/MemoEditor/index.tsx
+19
-9
No files found.
server/router/api/v1/memo_service.go
View file @
1caaef1c
...
...
@@ -243,10 +243,8 @@ func (s *APIV1Service) UpdateMemo(ctx context.Context, request *v1pb.UpdateMemoR
return
nil
,
status
.
Errorf
(
codes
.
PermissionDenied
,
"permission denied"
)
}
currentTs
:=
time
.
Now
()
.
Unix
()
update
:=
&
store
.
UpdateMemo
{
ID
:
id
,
UpdatedTs
:
&
currentTs
,
}
for
_
,
path
:=
range
request
.
UpdateMask
.
Paths
{
if
path
==
"content"
{
...
...
@@ -279,6 +277,12 @@ func (s *APIV1Service) UpdateMemo(ctx context.Context, request *v1pb.UpdateMemoR
}
else
if
path
==
"create_time"
{
createdTs
:=
request
.
Memo
.
CreateTime
.
AsTime
()
.
Unix
()
update
.
CreatedTs
=
&
createdTs
}
else
if
path
==
"update_time"
{
updatedTs
:=
time
.
Now
()
.
Unix
()
if
request
.
Memo
.
UpdateTime
!=
nil
{
updatedTs
=
request
.
Memo
.
UpdateTime
.
AsTime
()
.
Unix
()
}
update
.
UpdatedTs
=
&
updatedTs
}
else
if
path
==
"display_time"
{
displayTs
:=
request
.
Memo
.
DisplayTime
.
AsTime
()
.
Unix
()
memoRelatedSetting
,
err
:=
s
.
Store
.
GetWorkspaceMemoRelatedSetting
(
ctx
)
...
...
web/src/components/MemoContent/TaskListItem.tsx
View file @
1caaef1c
...
...
@@ -19,7 +19,7 @@ interface Props {
const
TaskListItem
:
React
.
FC
<
Props
>
=
({
node
,
complete
,
children
}:
Props
)
=>
{
const
context
=
useContext
(
RendererContext
);
const
memoStore
=
useMemoStore
();
const
[
checked
]
=
useState
(
complete
);
const
[
checked
,
setChecked
]
=
useState
(
complete
);
const
handleCheckboxChange
=
async
(
on
:
boolean
)
=>
{
if
(
context
.
readonly
||
!
context
.
memoName
)
{
...
...
@@ -35,6 +35,7 @@ const TaskListItem: React.FC<Props> = ({ node, complete, children }: Props) => {
},
[
"content"
],
);
setChecked
(
on
);
};
return
(
...
...
web/src/components/MemoContent/index.tsx
View file @
1caaef1c
...
...
@@ -53,13 +53,13 @@ const MemoContent: React.FC<Props> = (props: Props) => {
}
},
[]);
const
handle
MemoContentClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
const
on
MemoContentClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
if
(
onClick
)
{
onClick
(
e
);
}
};
const
handle
MemoContentDoubleClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
const
on
MemoContentDoubleClick
=
async
(
e
:
React
.
MouseEvent
)
=>
{
if
(
onDoubleClick
)
{
onDoubleClick
(
e
);
}
...
...
@@ -72,10 +72,6 @@ const MemoContent: React.FC<Props> = (props: Props) => {
SNIPPET
:
{
text
:
t
(
"memo.show-less"
),
nextState
:
"ALL"
},
};
useEffect
(()
=>
{
sessionStorage
.
getItem
(
`
${
memoName
}
`
)
&&
setShowCompactMode
(
sessionStorage
.
getItem
(
`
${
memoName
}
`
)
as
ContentCompactView
);
},
[]);
return
(
<
RendererContext
.
Provider
value=
{
{
...
...
@@ -95,8 +91,8 @@ const MemoContent: React.FC<Props> = (props: Props) => {
showCompactMode
==
"ALL"
&&
"line-clamp-6 max-h-60"
,
contentClassName
,
)
}
onClick=
{
handle
MemoContentClick
}
onDoubleClick=
{
handle
MemoContentDoubleClick
}
onClick=
{
on
MemoContentClick
}
onDoubleClick=
{
on
MemoContentDoubleClick
}
>
{
nodes
.
map
((
node
,
index
)
=>
{
if
(
prevNode
?.
type
!==
NodeType
.
LINE_BREAK
&&
node
.
type
===
NodeType
.
LINE_BREAK
&&
skipNextLineBreakFlag
)
{
...
...
@@ -117,7 +113,6 @@ const MemoContent: React.FC<Props> = (props: Props) => {
className=
"w-auto flex flex-row justify-start items-center cursor-pointer text-sm text-blue-600 dark:text-blue-400 hover:opacity-80"
onClick=
{
()
=>
{
setShowCompactMode
(
compactStates
[
showCompactMode
].
nextState
as
ContentCompactView
);
sessionStorage
.
setItem
(
`${memoName}`
,
compactStates
[
showCompactMode
].
nextState
);
}
}
>
{
compactStates
[
showCompactMode
].
text
}
...
...
web/src/components/MemoEditor/index.tsx
View file @
1caaef1c
...
...
@@ -302,29 +302,39 @@ const MemoEditor = (props: Props) => {
if
(
memoName
)
{
const
prevMemo
=
await
memoStore
.
getOrFetchMemoByName
(
memoName
);
if
(
prevMemo
)
{
const
updateMask
=
[
"content"
,
"visibility"
]
;
const
updateMask
=
new
Set
<
string
>
()
;
const
memoPatch
:
Partial
<
Memo
>
=
{
name
:
prevMemo
.
name
,
content
,
visibility
:
state
.
memoVisibility
,
};
if
(
!
isEqual
(
displayTime
,
prevMemo
.
displayTime
))
{
updateMask
.
push
(
"display_time"
);
memoPatch
.
displayTime
=
displayTime
;
if
(
!
isEqual
(
content
,
prevMemo
.
content
))
{
updateMask
.
add
(
"content"
);
memoPatch
.
content
=
content
;
}
if
(
!
isEqual
(
state
.
memoVisibility
,
prevMemo
.
visibility
))
{
updateMask
.
add
(
"visibility"
);
memoPatch
.
visibility
=
state
.
memoVisibility
;
}
if
(
!
isEqual
(
state
.
resourceList
,
prevMemo
.
resources
))
{
updateMask
.
push
(
"resources"
);
updateMask
.
add
(
"resources"
);
memoPatch
.
resources
=
state
.
resourceList
;
}
if
(
!
isEqual
(
state
.
relationList
,
prevMemo
.
relations
))
{
updateMask
.
push
(
"relations"
);
updateMask
.
add
(
"relations"
);
memoPatch
.
relations
=
state
.
relationList
;
}
if
(
!
isEqual
(
state
.
location
,
prevMemo
.
location
))
{
updateMask
.
push
(
"location"
);
updateMask
.
add
(
"location"
);
memoPatch
.
location
=
state
.
location
;
}
const
memo
=
await
memoStore
.
updateMemo
(
memoPatch
,
updateMask
);
if
([
"content"
,
"resources"
,
"relations"
,
"location"
].
some
((
key
)
=>
updateMask
.
has
(
key
)))
{
updateMask
.
add
(
"update_time"
);
}
if
(
!
isEqual
(
displayTime
,
prevMemo
.
displayTime
))
{
updateMask
.
add
(
"display_time"
);
memoPatch
.
displayTime
=
displayTime
;
}
const
memo
=
await
memoStore
.
updateMemo
(
memoPatch
,
Array
.
from
(
updateMask
));
if
(
onConfirm
)
{
onConfirm
(
memo
.
name
);
}
...
...
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