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
5074268f
Commit
5074268f
authored
Jul 29, 2025
by
Johnny
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: action styles in memo editor
parent
e724a7ef
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
27 deletions
+31
-27
LocationSelector.tsx
...c/components/MemoEditor/ActionButton/LocationSelector.tsx
+15
-19
MemoRelatedSettings.tsx
web/src/components/Settings/MemoRelatedSettings.tsx
+16
-8
No files found.
web/src/components/MemoEditor/ActionButton/LocationSelector.tsx
View file @
5074268f
...
@@ -86,31 +86,27 @@ const LocationSelector = (props: Props) => {
...
@@ -86,31 +86,27 @@ const LocationSelector = (props: Props) => {
setState
({
...
state
,
position
});
setState
({
...
state
,
position
});
};
};
const
removeLocation
=
()
=>
{
const
removeLocation
=
(
e
:
React
.
MouseEvent
)
=>
{
e
.
stopPropagation
();
e
.
preventDefault
();
props
.
onChange
(
undefined
);
props
.
onChange
(
undefined
);
};
};
return
(
return
(
<
Popover
open=
{
popoverOpen
}
onOpenChange=
{
setPopoverOpen
}
>
<
Popover
open=
{
popoverOpen
}
onOpenChange=
{
setPopoverOpen
}
>
{
props
.
location
?
(
<
div
className=
"flex items-center"
>
<
PopoverTrigger
asChild
>
<
PopoverTrigger
asChild
>
<
Button
variant=
"ghost"
className=
"rounded-r-none"
>
<
Button
variant=
"ghost"
size=
{
props
.
location
?
undefined
:
"icon"
}
>
<
MapPinIcon
className=
"size-5 shrink-0"
/>
<
MapPinIcon
className=
"size-5 shrink-0"
/>
{
props
.
location
&&
(
<>
<
span
className=
"ml-0.5 text-sm text-ellipsis whitespace-nowrap overflow-hidden max-w-28"
>
{
props
.
location
.
placeholder
}
</
span
>
<
span
className=
"ml-0.5 text-sm text-ellipsis whitespace-nowrap overflow-hidden max-w-28"
>
{
props
.
location
.
placeholder
}
</
span
>
</
Button
>
<
span
className=
"cursor-pointer hover:text-primary"
onClick=
{
removeLocation
}
>
</
PopoverTrigger
>
<
Button
variant=
"ghost"
size=
"icon"
className=
"rounded-l-none opacity-60 hover:opacity-80"
onClick=
{
removeLocation
}
>
<
XIcon
className=
"size-4 shrink-0"
/>
<
XIcon
className=
"size-4 shrink-0"
/>
</
Button
>
</
span
>
</
div
>
</>
)
:
(
)
}
<
PopoverTrigger
asChild
>
<
Button
variant=
"ghost"
size=
"icon"
>
<
MapPinIcon
className=
"size-5 shrink-0"
/>
</
Button
>
</
Button
>
</
PopoverTrigger
>
</
PopoverTrigger
>
)
}
<
PopoverContent
align=
"center"
>
<
PopoverContent
align=
"center"
>
<
div
className=
"min-w-80 sm:w-lg p-1 flex flex-col justify-start items-start"
>
<
div
className=
"min-w-80 sm:w-lg p-1 flex flex-col justify-start items-start"
>
<
LeafletMap
key=
{
JSON
.
stringify
(
state
.
initilized
)
}
latlng=
{
state
.
position
}
onChange=
{
onPositionChanged
}
/>
<
LeafletMap
key=
{
JSON
.
stringify
(
state
.
initilized
)
}
latlng=
{
state
.
position
}
onChange=
{
onPositionChanged
}
/>
...
...
web/src/components/Settings/MemoRelatedSettings.tsx
View file @
5074268f
...
@@ -125,10 +125,12 @@ const MemoRelatedSettings = observer(() => {
...
@@ -125,10 +125,12 @@ const MemoRelatedSettings = observer(() => {
return
(
return
(
<
Badge
key=
{
reactionType
}
variant=
"outline"
className=
"flex items-center gap-1"
>
<
Badge
key=
{
reactionType
}
variant=
"outline"
className=
"flex items-center gap-1"
>
{
reactionType
}
{
reactionType
}
<
X
<
span
className=
"
w-3 h-3 cursor-pointer hover:text-destructive
"
className=
"
cursor-pointer text-muted-foreground hover:text-primary
"
onClick=
{
()
=>
updatePartialSetting
({
reactions
:
memoRelatedSetting
.
reactions
.
filter
((
r
)
=>
r
!==
reactionType
)
})
}
onClick=
{
()
=>
updatePartialSetting
({
reactions
:
memoRelatedSetting
.
reactions
.
filter
((
r
)
=>
r
!==
reactionType
)
})
}
/>
>
<
X
className=
"w-4 h-4"
/>
</
span
>
</
Badge
>
</
Badge
>
);
);
})
}
})
}
...
@@ -139,7 +141,9 @@ const MemoRelatedSettings = observer(() => {
...
@@ -139,7 +141,9 @@ const MemoRelatedSettings = observer(() => {
value=
{
editingReaction
}
value=
{
editingReaction
}
onChange=
{
(
event
)
=>
setEditingReaction
(
event
.
target
.
value
.
trim
())
}
onChange=
{
(
event
)
=>
setEditingReaction
(
event
.
target
.
value
.
trim
())
}
/>
/>
<
CheckIcon
className=
"w-5 h-5 text-muted-foreground cursor-pointer hover:text-primary"
onClick=
{
()
=>
upsertReaction
()
}
/>
<
span
className=
"text-muted-foreground cursor-pointer hover:text-primary"
onClick=
{
()
=>
upsertReaction
()
}
>
<
CheckIcon
className=
"w-5 h-5"
/>
</
span
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
@@ -156,10 +160,12 @@ const MemoRelatedSettings = observer(() => {
...
@@ -156,10 +160,12 @@ const MemoRelatedSettings = observer(() => {
return
(
return
(
<
Badge
key=
{
nsfwTag
}
variant=
"outline"
className=
"flex items-center gap-1"
>
<
Badge
key=
{
nsfwTag
}
variant=
"outline"
className=
"flex items-center gap-1"
>
{
nsfwTag
}
{
nsfwTag
}
<
X
<
span
className=
"
w-3 h-3 cursor-pointer hover:text-destructive
"
className=
"
cursor-pointer text-muted-foreground hover:text-primary
"
onClick=
{
()
=>
updatePartialSetting
({
nsfwTags
:
memoRelatedSetting
.
nsfwTags
.
filter
((
r
)
=>
r
!==
nsfwTag
)
})
}
onClick=
{
()
=>
updatePartialSetting
({
nsfwTags
:
memoRelatedSetting
.
nsfwTags
.
filter
((
r
)
=>
r
!==
nsfwTag
)
})
}
/>
>
<
X
className=
"w-4 h-4"
/>
</
span
>
</
Badge
>
</
Badge
>
);
);
})
}
})
}
...
@@ -170,7 +176,9 @@ const MemoRelatedSettings = observer(() => {
...
@@ -170,7 +176,9 @@ const MemoRelatedSettings = observer(() => {
value=
{
editingNsfwTag
}
value=
{
editingNsfwTag
}
onChange=
{
(
event
)
=>
setEditingNsfwTag
(
event
.
target
.
value
.
trim
())
}
onChange=
{
(
event
)
=>
setEditingNsfwTag
(
event
.
target
.
value
.
trim
())
}
/>
/>
<
CheckIcon
className=
"w-5 h-5 text-muted-foreground cursor-pointer hover:text-primary"
onClick=
{
()
=>
upsertNsfwTags
()
}
/>
<
span
className=
"text-muted-foreground cursor-pointer hover:text-primary"
onClick=
{
()
=>
upsertNsfwTags
()
}
>
<
CheckIcon
className=
"w-5 h-5"
/>
</
span
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
</
div
>
...
...
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