fix(montage): save the chapter title as it is typed
The input only committed on change, so any re-render of the inspector reset it to the stored (empty) title.
0b150d0 parent: 223eea8 modified
web/src/project/steps/montage/Inspector.vue +1 -1 | @@ -261,7 +261,7 @@ const SOUND_ROLES = computed(() => [["sfx", tr("editing.inspector.sound")], ["mu | ||
| 261 | 261 | |
| 262 | 262 | <template v-else-if="item.track === 'markers'"> |
| 263 | 263 | <input class="input" :value="(item.data as Marker).text" :placeholder="tr('editing.inspector.chapterTitle')" |
| 264 | - @change="set<Marker>((x) => { x.text = ($event.target as HTMLInputElement).value; })"> | |
| 264 | + @input="set<Marker>((x) => { x.text = ($event.target as HTMLInputElement).value; })"> | |
| 265 | 265 | <span class="sub">{{ tr((item.data as Marker).by === "ai" ? "editing.inspector.byAi" : "editing.inspector.byUser") }}</span> |
| 266 | 266 | </template> |
| 267 | 267 | </fieldset> |
| @@ -261,7 +261,7 @@ const SOUND_ROLES = computed(() => [["sfx", tr("editing.inspector.sound")], ["mu | |||
| 261 | 261 | ||
| 262 | <template v-else-if="item.track === 'markers'"> | 262 | <template v-else-if="item.track === 'markers'"> |
| 263 | <input class="input" :value="(item.data as Marker).text" :placeholder="tr('editing.inspector.chapterTitle')" | 263 | <input class="input" :value="(item.data as Marker).text" :placeholder="tr('editing.inspector.chapterTitle')" |
| 264 | - @change="set<Marker>((x) => { x.text = ($event.target as HTMLInputElement).value; })"> | 264 | + @input="set<Marker>((x) => { x.text = ($event.target as HTMLInputElement).value; })"> |
| 265 | <span class="sub">{{ tr((item.data as Marker).by === "ai" ? "editing.inspector.byAi" : "editing.inspector.byUser") }}</span> | 265 | <span class="sub">{{ tr((item.data as Marker).by === "ai" ? "editing.inspector.byAi" : "editing.inspector.byUser") }}</span> |
| 266 | </template> | 266 | </template> |
| 267 | </fieldset> | 267 | </fieldset> |