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
861b58cb
Commit
861b58cb
authored
Feb 12, 2026
by
Steven
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor(web): extract NsfwOverlay into standalone component with flexbox centering
parent
aeb1e5fe
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
14 deletions
+14
-14
MemoBody.tsx
web/src/components/MemoView/components/MemoBody.tsx
+14
-14
No files found.
web/src/components/MemoView/components/MemoBody.tsx
View file @
861b58cb
...
@@ -7,9 +7,21 @@ import { useMemoViewContext } from "../MemoViewContext";
...
@@ -7,9 +7,21 @@ import { useMemoViewContext } from "../MemoViewContext";
import
type
{
MemoBodyProps
}
from
"../types"
;
import
type
{
MemoBodyProps
}
from
"../types"
;
import
{
AttachmentList
,
LocationDisplay
,
RelationList
}
from
"./metadata"
;
import
{
AttachmentList
,
LocationDisplay
,
RelationList
}
from
"./metadata"
;
const
MemoBody
:
React
.
FC
<
MemoBodyProps
>
=
({
compact
,
onContentClick
,
onContentDoubleClick
,
onToggleNsfwVisibility
})
=>
{
const
NsfwOverlay
:
React
.
FC
<
{
onClick
?:
()
=>
void
}
>
=
({
onClick
})
=>
{
const
t
=
useTranslate
();
const
t
=
useTranslate
();
return
(
<
div
className=
"absolute inset-0 z-10 pt-4 flex items-center justify-center"
onClick=
{
onClick
}
>
<
button
type=
"button"
className=
"rounded-lg border border-border bg-card px-2 py-1 text-xs text-muted-foreground transition-colors hover:border-accent hover:bg-accent hover:text-foreground"
>
{
t
(
"memo.click-to-show-nsfw-content"
)
}
</
button
>
</
div
>
);
};
const
MemoBody
:
React
.
FC
<
MemoBodyProps
>
=
({
compact
,
onContentClick
,
onContentDoubleClick
,
onToggleNsfwVisibility
})
=>
{
const
{
memo
,
parentPage
,
showNSFWContent
,
nsfw
}
=
useMemoViewContext
();
const
{
memo
,
parentPage
,
showNSFWContent
,
nsfw
}
=
useMemoViewContext
();
const
referencedMemos
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
REFERENCE
);
const
referencedMemos
=
memo
.
relations
.
filter
((
relation
)
=>
relation
.
type
===
MemoRelation_Type
.
REFERENCE
);
...
@@ -35,19 +47,7 @@ const MemoBody: React.FC<MemoBodyProps> = ({ compact, onContentClick, onContentD
...
@@ -35,19 +47,7 @@ const MemoBody: React.FC<MemoBodyProps> = ({ compact, onContentClick, onContentD
<
MemoReactionListView
memo=
{
memo
}
reactions=
{
memo
.
reactions
}
/>
<
MemoReactionListView
memo=
{
memo
}
reactions=
{
memo
.
reactions
}
/>
</
div
>
</
div
>
{
/* NSFW content overlay */
}
{
nsfw
&&
!
showNSFWContent
&&
<
NsfwOverlay
onClick=
{
onToggleNsfwVisibility
}
/>
}
{
nsfw
&&
!
showNSFWContent
&&
(
<>
<
div
className=
"absolute inset-0 bg-transparent"
/>
<
button
type=
"button"
className=
"absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 py-2 px-4 text-sm text-muted-foreground hover:text-foreground hover:bg-accent hover:border-accent border border-border rounded-lg bg-card transition-colors"
onClick=
{
onToggleNsfwVisibility
}
>
{
t
(
"memo.click-to-show-nsfw-content"
)
}
</
button
>
</>
)
}
</>
</>
);
);
};
};
...
...
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