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
9aed80a4
Unverified
Commit
9aed80a4
authored
Oct 22, 2023
by
MotH
Committed by
GitHub
Oct 22, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: better tag suggestion (#2421)
Better Tag Suggestion
parent
c31f306b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
22 additions
and
3 deletions
+22
-3
TagSuggestions.tsx
web/src/components/MemoEditor/Editor/TagSuggestions.tsx
+22
-3
No files found.
web/src/components/MemoEditor/Editor/TagSuggestions.tsx
View file @
9aed80a4
...
...
@@ -33,9 +33,28 @@ const TagSuggestions = ({ editorRef, editorActions }: Props) => {
const
suggestionsRef
=
useRef
<
string
[]
>
([]);
suggestionsRef
.
current
=
(()
=>
{
const
partial
=
getCurrentWord
()[
0
].
slice
(
1
).
toLowerCase
();
const
matches
=
(
str
:
string
)
=>
str
.
startsWith
(
partial
)
&&
partial
.
length
<
str
.
length
;
return
tagsRef
.
current
.
filter
((
tag
)
=>
matches
(
tag
.
toLowerCase
())).
slice
(
0
,
5
);
const
input
=
getCurrentWord
()[
0
].
slice
(
1
).
toLowerCase
();
const
customMatches
=
(
tag
:
string
,
input
:
string
)
=>
{
const
tagLowerCase
=
tag
.
toLowerCase
();
const
inputLowerCase
=
input
.
toLowerCase
();
let
inputIndex
=
0
;
for
(
let
i
=
0
;
i
<
tagLowerCase
.
length
;
i
++
)
{
if
(
tagLowerCase
[
i
]
===
inputLowerCase
[
inputIndex
])
{
inputIndex
++
;
if
(
inputIndex
===
inputLowerCase
.
length
)
{
return
true
;
}
}
}
return
false
;
};
const
matchedTags
=
tagsRef
.
current
.
filter
((
tag
)
=>
customMatches
(
tag
,
input
));
return
matchedTags
.
slice
(
0
,
5
);
})();
const
isVisibleRef
=
useRef
(
false
);
...
...
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