부모가 되돌린 echo 값이면 setMarkdown 생략 → 문자 조합 유지 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+10
-3
@@ -1,4 +1,11 @@
|
|||||||
# 앱(Capacitor) 빌드 전용 환경변수 — `vite build --mode capacitor` 가 로드합니다.
|
# 앱(Capacitor) 빌드 전용 환경변수 — `vite build --mode capacitor` 가 로드합니다.
|
||||||
# 앱 안에서는 상대경로(/api)가 서버로 가지 않으므로 백엔드 절대 URL 로 지정해야 합니다.
|
# 앱 안에서는 상대경로(/api)가 서버로 가지 않으므로 백엔드 절대 URL 을 지정해야 합니다.
|
||||||
# 운영 백엔드 도메인으로 교체하세요. 예) https://api.yourdomain.com/api 또는 https://yourdomain.com/api
|
#
|
||||||
VITE_API_BASE_URL=https://your-backend-domain/api
|
# [로컬 + 에뮬레이터 테스트] 에뮬레이터에서 10.0.2.2 = PC의 localhost
|
||||||
|
VITE_API_BASE_URL=http://10.0.2.2:8080/api
|
||||||
|
#
|
||||||
|
# [실기기 테스트] 같은 Wi-Fi 의 PC LAN IP 로 (예)
|
||||||
|
# VITE_API_BASE_URL=http://192.168.0.10:8080/api
|
||||||
|
#
|
||||||
|
# [배포 서버(HTTPS)] 운영 시
|
||||||
|
# VITE_API_BASE_URL=https://yourdomain.com/api
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
"appId": "kr.sblog.slimbudget",
|
"appId": "kr.sblog.slimbudget",
|
||||||
"appName": "Slim Budget",
|
"appName": "Slim Budget",
|
||||||
"webDir": "dist",
|
"webDir": "dist",
|
||||||
|
"server": {
|
||||||
|
"cleartext": true
|
||||||
|
},
|
||||||
"android": {
|
"android": {
|
||||||
"allowMixedContent": false
|
"allowMixedContent": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ const emit = defineEmits(['update:modelValue'])
|
|||||||
|
|
||||||
const el = ref(null)
|
const el = ref(null)
|
||||||
let editor = null
|
let editor = null
|
||||||
|
// 에디터가 마지막으로 emit 한 값. 부모가 되돌려준 echo 를 구분해 한글 조합(IME)이 깨지지 않게 한다.
|
||||||
|
let lastEmitted = props.modelValue || ''
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
editor = new Editor({
|
editor = new Editor({
|
||||||
@@ -29,17 +31,24 @@ onMounted(() => {
|
|||||||
usageStatistics: false,
|
usageStatistics: false,
|
||||||
autofocus: false,
|
autofocus: false,
|
||||||
events: {
|
events: {
|
||||||
change: () => emit('update:modelValue', editor.getMarkdown()),
|
change: () => {
|
||||||
|
lastEmitted = editor.getMarkdown()
|
||||||
|
emit('update:modelValue', lastEmitted)
|
||||||
|
},
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// 외부 값 변경(수정 로드, 제출 후 초기화 등)을 에디터에 반영 (입력 중 루프 방지 가드)
|
// 외부 값 변경(수정 로드, 제출 후 초기화 등)만 에디터에 반영.
|
||||||
|
// 에디터 자신이 방금 emit 한 값(echo)이면 무시 → 입력 중 setMarkdown 으로 IME(한글) 조합이 끊기지 않게 한다.
|
||||||
watch(
|
watch(
|
||||||
() => props.modelValue,
|
() => props.modelValue,
|
||||||
(val) => {
|
(val) => {
|
||||||
if (editor && (val || '') !== editor.getMarkdown()) {
|
const v = val || ''
|
||||||
editor.setMarkdown(val || '')
|
if (v === lastEmitted) return
|
||||||
|
if (editor && v !== editor.getMarkdown()) {
|
||||||
|
lastEmitted = v
|
||||||
|
editor.setMarkdown(v)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user