diff --git a/src/components/MyDeployer.vue b/src/components/MyDeployer.vue
index e28d928..22e75d3 100644
--- a/src/components/MyDeployer.vue
+++ b/src/components/MyDeployer.vue
@@ -2,7 +2,7 @@
import { useNotification } from 'naive-ui'
import { worker } from '../workerAPI'
import {
- changeIME,
+ selectIME,
deployed,
selectOptions,
setLoading
@@ -48,10 +48,8 @@ worker.control('deployStatus', async (status: 'start' | 'failure' | 'success', s
value: schema.id
})
}
- const currentSchema = schemasJson[0].id
- await changeIME(currentSchema)
+ selectIME(schemasJson[0].id)
}
- setLoading(false)
break
}
})
diff --git a/src/components/MyMenu.vue b/src/components/MyMenu.vue
index e9bcd19..9c0f4e1 100644
--- a/src/components/MyMenu.vue
+++ b/src/components/MyMenu.vue
@@ -1,5 +1,5 @@
@@ -80,7 +67,7 @@ defineExpose({
:value="ime"
:options="selectOptions"
:loading="loading"
- @update:value="selectIME"
+ @update:value="onSelectIME"
/>
void
- onUpdateSchema?: (targetIME: string) => Promise
}>()
const { textareaSelector, updateText } = toRaw(props)
const {
text,
- debugMode,
- onUpdateSchema
+ debugMode
} = toRefs(props)
const mouseX = ref(0)
@@ -174,7 +173,7 @@ async function analyze (result: RIME_RESULT, rimeKey: string) {
editing.value = false
showMenu.value = false
if (result.state === 2 && result.updatedSchema) {
- await onUpdateSchema?.value!(result.updatedSchema.split('/')[0])
+ await selectIME(result.updatedSchema.split('/')[0])
}
if (result.state === 3 && isPrintable(rimeKey)) {
insert(rimeKey)
diff --git a/src/control.ts b/src/control.ts
index 3f76c9a..cf6f546 100644
--- a/src/control.ts
+++ b/src/control.ts
@@ -152,6 +152,8 @@ for (const schema of schemas as {
}
}
+const showVariant = ref(false)
+
const variants = computed(() => schemaVariants[schemaId.value])
const variantIndex = computed({
@@ -176,7 +178,7 @@ async function init (_schemaId: string, variantName: string) {
break
}
}
- return changeIME(schemaId.value)
+ return selectIME(schemaId.value)
}
const isEnglish = ref(false)
@@ -220,7 +222,9 @@ function changeVariant () {
return setVariant()
}
-async function changeIME (targetIME: string) {
+async function selectIME (targetIME: string) {
+ showVariant.value = false
+ setLoading(true)
try {
await setIME(targetIME)
schemaId.value = targetIME
@@ -240,6 +244,8 @@ async function changeIME (targetIME: string) {
} catch (e) {
console.error(e)
}
+ showVariant.value = true
+ setLoading(false)
}
function syncOptions (updatedOptions: string[]) {
@@ -285,6 +291,7 @@ export {
schemaId,
ime,
selectOptions,
+ showVariant,
variants,
variant,
isEnglish,
@@ -301,6 +308,6 @@ export {
changeCharset,
changePunctuation,
changeEmoji,
- changeIME,
+ selectIME,
syncOptions
}
diff --git a/src/views/MainView.vue b/src/views/MainView.vue
index c708280..a400271 100644
--- a/src/views/MainView.vue
+++ b/src/views/MainView.vue
@@ -56,7 +56,6 @@ async function copyLink () {
textarea.focus()
}
-const menu = ref>()
const panel = ref>()
const simulator = ref>()
const editor = ref>()
@@ -87,7 +86,6 @@ const AsyncEditor = defineAsyncComponent(() => import('../components/MyEditor.vu
class="my-column"
>
import('../components/MyEditor.vu
:text="text"
:update-text="updateText"
:debug-mode="simulator?.debugMode"
- :on-update-schema="menu?.selectIME"
/>