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
086b1071
Unverified
Commit
086b1071
authored
Oct 14, 2022
by
boojack
Committed by
GitHub
Oct 14, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: upload files by dropping (#292)
parent
eefd0444
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
40 additions
and
9 deletions
+40
-9
Memo.tsx
web/src/components/Memo.tsx
+6
-0
MemoEditor.tsx
web/src/components/MemoEditor.tsx
+31
-6
Tag.ts
web/src/labs/marked/parser/Tag.ts
+1
-1
memo-resources.less
web/src/less/memo-resources.less
+1
-1
siderbar.less
web/src/less/siderbar.less
+1
-1
No files found.
web/src/components/Memo.tsx
View file @
086b1071
...
@@ -13,6 +13,7 @@ import MemoContent from "./MemoContent";
...
@@ -13,6 +13,7 @@ import MemoContent from "./MemoContent";
import
MemoResources
from
"./MemoResources"
;
import
MemoResources
from
"./MemoResources"
;
import
showMemoCardDialog
from
"./MemoCardDialog"
;
import
showMemoCardDialog
from
"./MemoCardDialog"
;
import
showShareMemoImageDialog
from
"./ShareMemoImageDialog"
;
import
showShareMemoImageDialog
from
"./ShareMemoImageDialog"
;
import
showPreviewImageDialog
from
"./PreviewImageDialog"
;
import
"../less/memo.less"
;
import
"../less/memo.less"
;
dayjs
.
extend
(
relativeTime
);
dayjs
.
extend
(
relativeTime
);
...
@@ -159,6 +160,11 @@ const Memo: React.FC<Props> = (props: Props) => {
...
@@ -159,6 +160,11 @@ const Memo: React.FC<Props> = (props: Props) => {
});
});
}
}
}
}
}
else
if
(
targetEl
.
tagName
===
"IMG"
)
{
const
imgUrl
=
targetEl
.
getAttribute
(
"src"
);
if
(
imgUrl
)
{
showPreviewImageDialog
(
imgUrl
);
}
}
}
};
};
...
...
web/src/components/MemoEditor.tsx
View file @
086b1071
...
@@ -76,6 +76,36 @@ const MemoEditor: React.FC = () => {
...
@@ -76,6 +76,36 @@ const MemoEditor: React.FC = () => {
prevGlobalStateRef
.
current
=
editorState
;
prevGlobalStateRef
.
current
=
editorState
;
},
[
state
,
editorState
.
editMemoId
]);
},
[
state
,
editorState
.
editMemoId
]);
const
handleKeyDown
=
(
event
:
React
.
KeyboardEvent
)
=>
{
if
(
event
.
key
===
"Escape"
)
{
if
(
state
.
fullscreen
)
{
handleFullscreenBtnClick
();
}
}
else
if
(
event
.
key
===
"Enter"
&&
(
event
.
ctrlKey
||
event
.
metaKey
))
{
handleSaveBtnClick
();
}
};
const
handleDropEvent
=
async
(
event
:
React
.
DragEvent
)
=>
{
if
(
event
.
dataTransfer
&&
event
.
dataTransfer
.
files
.
length
>
0
)
{
event
.
preventDefault
();
const
resourceList
:
Resource
[]
=
[];
for
(
const
file
of
event
.
dataTransfer
.
files
)
{
const
resource
=
await
handleUploadResource
(
file
);
if
(
resource
)
{
resourceList
.
push
(
resource
);
if
(
editorState
.
editMemoId
)
{
await
upsertMemoResource
(
editorState
.
editMemoId
,
resource
.
id
);
}
}
}
setState
({
...
state
,
resourceList
:
[...
state
.
resourceList
,
...
resourceList
],
});
}
};
const
handlePasteEvent
=
async
(
event
:
React
.
ClipboardEvent
)
=>
{
const
handlePasteEvent
=
async
(
event
:
React
.
ClipboardEvent
)
=>
{
if
(
event
.
clipboardData
&&
event
.
clipboardData
.
files
.
length
>
0
)
{
if
(
event
.
clipboardData
&&
event
.
clipboardData
.
files
.
length
>
0
)
{
event
.
preventDefault
();
event
.
preventDefault
();
...
@@ -239,12 +269,6 @@ const MemoEditor: React.FC = () => {
...
@@ -239,12 +269,6 @@ const MemoEditor: React.FC = () => {
});
});
};
};
const
handleKeyDown
=
(
event
:
React
.
KeyboardEvent
)
=>
{
if
(
event
.
key
===
"Escape"
)
{
state
.
fullscreen
&&
handleFullscreenBtnClick
();
}
};
const
handleTagSeletorClick
=
useCallback
((
event
:
React
.
MouseEvent
)
=>
{
const
handleTagSeletorClick
=
useCallback
((
event
:
React
.
MouseEvent
)
=>
{
if
(
tagSeletorRef
.
current
!==
event
.
target
&&
tagSeletorRef
.
current
?.
contains
(
event
.
target
as
Node
))
{
if
(
tagSeletorRef
.
current
!==
event
.
target
&&
tagSeletorRef
.
current
?.
contains
(
event
.
target
as
Node
))
{
editorRef
.
current
?.
insertText
(
`#
${(
event
.
target
as
HTMLElement
).
textContent
}
`
??
""
);
editorRef
.
current
?.
insertText
(
`#
${(
event
.
target
as
HTMLElement
).
textContent
}
`
??
""
);
...
@@ -296,6 +320,7 @@ const MemoEditor: React.FC = () => {
...
@@ -296,6 +320,7 @@ const MemoEditor: React.FC = () => {
<
div
<
div
className=
{
`memo-editor-container ${mobileEditorStyle} ${isEditing ? "edit-ing" : ""} ${state.fullscreen ? "fullscreen" : ""}`
}
className=
{
`memo-editor-container ${mobileEditorStyle} ${isEditing ? "edit-ing" : ""} ${state.fullscreen ? "fullscreen" : ""}`
}
onKeyDown=
{
handleKeyDown
}
onKeyDown=
{
handleKeyDown
}
onDrop=
{
handleDropEvent
}
>
>
<
div
className=
{
`tip-container ${isEditing ? "" : "!hidden"}`
}
>
<
div
className=
{
`tip-container ${isEditing ? "" : "!hidden"}`
}
>
<
span
className=
"tip-text"
>
{
t
(
"editor.editing"
)
}
</
span
>
<
span
className=
"tip-text"
>
{
t
(
"editor.editing"
)
}
</
span
>
...
...
web/src/labs/marked/parser/Tag.ts
View file @
086b1071
import
{
escape
}
from
"lodash-es"
;
import
{
escape
}
from
"lodash-es"
;
export
const
TAG_REG
=
/
[^\s]?
#
([^\s
#
]
+
?)
/
;
export
const
TAG_REG
=
/#
([^\s
#
]
+
?)
/
;
const
renderer
=
(
rawStr
:
string
):
string
=>
{
const
renderer
=
(
rawStr
:
string
):
string
=>
{
const
matchResult
=
rawStr
.
match
(
TAG_REG
);
const
matchResult
=
rawStr
.
match
(
TAG_REG
);
...
...
web/src/less/memo-resources.less
View file @
086b1071
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
.hide-scroll-bar();
.hide-scroll-bar();
> img {
> img {
@apply w-auto max-h-40 rounded
-lg
;
@apply w-auto max-h-40 rounded;
}
}
}
}
}
}
...
...
web/src/less/siderbar.less
View file @
086b1071
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
}
}
.mask {
.mask {
@apply fixed top-0 right-0 w-screen h-screen bg-transparent transition-all duration-300 z-0;
@apply fixed top-0 right-0 w-screen h-screen bg-transparent transition-all duration-300 z-0
sm:hidden
;
&.show {
&.show {
@apply z-20 bg-black opacity-60;
@apply z-20 bg-black opacity-60;
...
...
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