add general file upload support with pool-aware tus client

- add "uploadFile" i18n key (en, zh-CN, zh-TW)
- introduce putFileToPool for tus upload with X-FilePool header
- add ComposeLogic.pickGeneralFile for arbitrary files
- extend uploadAttachment to support poolId override
- add toolbar button for general file upload

Signed-off-by: Texas0295 <kimura@texas0295.top>
This commit is contained in:
Texas0295
2025-09-21 14:44:18 +08:00
parent 406e5187a8
commit 269a64cabb
6 changed files with 130 additions and 24 deletions

View File

@@ -25,6 +25,10 @@ class ComposeToolbar extends HookConsumerWidget {
ComposeLogic.pickVideoMedia(ref, state);
}
void pickGeneralFile() {
ComposeLogic.pickGeneralFile(ref, state);
}
void addAudio() {
ComposeLogic.recordAudioMedia(ref, state, context);
}
@@ -96,6 +100,12 @@ class ComposeToolbar extends HookConsumerWidget {
icon: const Icon(Symbols.mic),
color: colorScheme.primary,
),
IconButton(
onPressed: pickGeneralFile,
tooltip: 'uploadFile'.tr(),
icon: const Icon(Symbols.file_upload),
color: colorScheme.primary,
),
IconButton(
onPressed: linkAttachment,
icon: const Icon(Symbols.attach_file),