이모지가 잘못된 위치에 삽입됩니다

아 맞다, 이렇게 하면 고쳐진다:

diff --git a/frontend/discourse/app/modifiers/d-autocomplete.js b/frontend/discourse/app/modifiers/d-autocomplete.js
index e49fc0ec53..33fb51a1f4 100644
--- a/frontend/discourse/app/modifiers/d-autocomplete.js
+++ b/frontend/discourse/app/modifiers/d-autocomplete.js
@@ -599,10 +599,19 @@ export default class DAutocompleteModifier extends Modifier {
         prev = this.getValue()[caretPos - 1];
         const shouldTrigger = await this.shouldTrigger({ backSpace });
 
-        if (
-          shouldTrigger &&
-          (prev === undefined || this.ALLOWED_LETTERS_REGEXP.test(prev))
-        ) {
+        // 이모지 자동완성(key === ':')의 경우, 이모지 앞에 나타날 수 있는
+        // 쉼표, 마침표 등 일반적인 구두점을 포함하는 더 관대한 검사를 사용
+        let isAllowed;
+        if (this.options.key === ":") {
+          // 이모지 자동완성의 onKeyUp 정규식에서 허용되는 동일한 문자와 일치
+          isAllowed =
+            prev === undefined || /[\s.?,@/#!%&*;:\[\]{}=\-_()+]/.test(prev);
+        } else {
+          isAllowed =
+            prev === undefined || this.ALLOWED_LETTERS_REGEXP.test(prev);
+        }
+
+        if (shouldTrigger && isAllowed) {
           start = caretPos;
           term = this.getValue().substring(caretPos + 1, initialCaretPos);
           end = caretPos + term.length;

@kelv 이 코드가 어떻게 발전해 왔는지에 대해 아주 익숙하지는 않은데, 최근에 하신 포트 작업 중 일부가 이 내용과 관련이 있어서 떠오르는 부분이 있을까요?

2개의 좋아요