Add a gated "Transcribe" action to the audio block's bubble menu so an already-embedded audio file can be transcribed (previously only live microphone dictation was supported). The button fetches the embedded file, normalizes its MIME type to the STT whitelist, reuses the existing POST /ai-chat/transcribe endpoint, and inserts the result as a paragraph right below the audio block. - Mount the previously-unwired AudioMenu in page-editor (edit mode only), which also surfaces the existing Download/Delete actions for audio. - Gate the Transcribe button on settings.ai.dictation; show a spinner and block double-submits while transcribing; map errors like the mic hook. - Disambiguate duplicate-src blocks by re-scanning the doc and inserting after the audio node closest to the originally selected one. - Add i18n keys (en-US, ru-RU): Transcribe, Transcribing…, No speech detected, plus ru-RU translations for the transcription error messages.
React + TypeScript + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
Expanding the ESLint configuration
If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:
- Configure the top-level
parserOptionsproperty like this:
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
project: ['./tsconfig.json', './tsconfig.node.json'],
tsconfigRootDir: __dirname,
},
- Replace
plugin:@typescript-eslint/recommendedtoplugin:@typescript-eslint/recommended-type-checkedorplugin:@typescript-eslint/strict-type-checked - Optionally add
plugin:@typescript-eslint/stylistic-type-checked - Install eslint-plugin-react and add
plugin:react/recommended&plugin:react/jsx-runtimeto theextendslist