관리자 슬래시 명령 적용 계획 분리
This commit is contained in:
@@ -59,13 +59,12 @@ import {
|
||||
toggleMediaSelectionState
|
||||
} from '../../lib/markdown-editor-media.js'
|
||||
import {
|
||||
getMediaPickerKindFromSlashAction,
|
||||
createSlashCommandApplyPlan,
|
||||
getNextSlashHighlightedIndex,
|
||||
getSlashCommandFocusTarget,
|
||||
getSlashCommandTextareaSelection,
|
||||
getSlashMenuKeyboardAction,
|
||||
insertMarkdownLinesAtSlashTarget,
|
||||
isMediaSlashAction,
|
||||
parseSlashInput,
|
||||
resolveSlashCommand,
|
||||
shouldIgnorePendingMediaSlashCommit
|
||||
@@ -2480,36 +2479,32 @@ const focusTextareaAfterSlashCommand = (line, replacementLines) => {
|
||||
* @returns {void}
|
||||
*/
|
||||
const applyLiveSlashCommand = (command) => {
|
||||
if (!command || liveSlashSourceLine.value === null) {
|
||||
const plan = createSlashCommandApplyPlan({
|
||||
command,
|
||||
sourceLine: liveSlashSourceLine.value
|
||||
})
|
||||
|
||||
if (plan.kind === 'none') {
|
||||
return
|
||||
}
|
||||
|
||||
const line = liveSlashSourceLine.value
|
||||
|
||||
if (isMediaSlashAction(command.action)) {
|
||||
const mediaKind = getMediaPickerKindFromSlashAction(command.action)
|
||||
|
||||
if (!mediaKind) {
|
||||
return
|
||||
}
|
||||
|
||||
liveSlashInsertLine.value = line
|
||||
replaceLineRange(line, line, [], false)
|
||||
if (plan.kind === 'media') {
|
||||
liveSlashInsertLine.value = plan.line
|
||||
replaceLineRange(plan.line, plan.line, [], false)
|
||||
onLiveSlashEnd()
|
||||
openMediaPicker(mediaKind)
|
||||
openMediaPicker(plan.mediaKind)
|
||||
return
|
||||
}
|
||||
|
||||
if (command.action === 'lines' && Array.isArray(command.lines)) {
|
||||
const replacementLines = command.lines
|
||||
releaseLiveSlashLine(line)
|
||||
replaceLineRange(line, line, replacementLines, false)
|
||||
if (plan.kind === 'lines') {
|
||||
releaseLiveSlashLine(plan.line)
|
||||
replaceLineRange(plan.line, plan.line, plan.lines, false)
|
||||
clearLiveSlashState()
|
||||
|
||||
if (activeMode.value === 'write') {
|
||||
focusTextareaAfterSlashCommand(line, replacementLines)
|
||||
focusTextareaAfterSlashCommand(plan.line, plan.lines)
|
||||
} else {
|
||||
focusPreviewAfterSlashCommand(line, replacementLines)
|
||||
focusPreviewAfterSlashCommand(plan.line, plan.lines)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user