diff --git a/lib/models/ai/files_model.dart b/lib/models/ai/files_model.dart index 09faf13..b22aec1 100644 --- a/lib/models/ai/files_model.dart +++ b/lib/models/ai/files_model.dart @@ -6,7 +6,7 @@ import 'package:path/path.dart' as p; class FilesModel { final String path; - late String basename; + late String? name; late String extname; late File main; final bool isRecorded; @@ -18,7 +18,7 @@ class FilesModel { FilesModel( this.path, { - final String? name, + this.name, this.isRecorded = false, this.audio, this.image, @@ -26,11 +26,11 @@ class FilesModel { this.bytes, this.duration, }) { - basename = name ?? p.basename(path); + name = name ?? p.basename(path); extname = path.isNotEmpty ? p.extension(path) : name != null - ? p.extension(name) + ? p.extension(name!) : ''; main = File(path); diff --git a/lib/services/ai/ai_api_service.dart b/lib/services/ai/ai_api_service.dart index 7b7cd40..695a301 100644 --- a/lib/services/ai/ai_api_service.dart +++ b/lib/services/ai/ai_api_service.dart @@ -76,7 +76,7 @@ class AiApiService { mimeType = lookupMimeType(filename, headerBytes: bytes) ?? 'audio/mp4'; } else { - filename = file.basename; + filename = file.name!; mimeType = lookupMimeType(filename, headerBytes: bytes) ?? 'application/octet-stream'; } diff --git a/lib/views/ai/widgets/ai_message_bar.dart b/lib/views/ai/widgets/ai_message_bar.dart index 006180f..c10a6a7 100644 --- a/lib/views/ai/widgets/ai_message_bar.dart +++ b/lib/views/ai/widgets/ai_message_bar.dart @@ -896,7 +896,7 @@ class _AiMessageBarState extends State { SizedBox( height: 24, child: MarqueeText( - text: state.file != null ? state.file!.basename : '', + text: state.file != null ? state.file!.name! : '', style: const TextStyle(fontSize: 14), stop: const Duration(seconds: 3), ), diff --git a/lib/views/ai/widgets/ai_message_bar_ios.dart b/lib/views/ai/widgets/ai_message_bar_ios.dart index 34c1a89..87f252c 100644 --- a/lib/views/ai/widgets/ai_message_bar_ios.dart +++ b/lib/views/ai/widgets/ai_message_bar_ios.dart @@ -252,8 +252,7 @@ class _AiMessageBarIOSState extends State { file: state .file?.path, fileName: state - .file - ?.basename, + .file?.name, fileLocal: state.file, finished: true, @@ -288,7 +287,7 @@ class _AiMessageBarIOSState extends State { ?.path, fileName: state .file - ?.basename, + ?.name, fileLocal: state .file, @@ -561,7 +560,7 @@ class _AiMessageBarIOSState extends State { ? const Padding( padding: EdgeInsets.fromLTRB(8, 8, 8, 4), child: DidvanText( - 'مدل‌های هوش مصنوعی می‌توانند اشتباه کنند، صحت اطلاعات مهم را بررسی کنید.', + 'مدل‌های هوش مصنوعی می‌توانند اشتباه کنند، صحت اطلاعات مهم را بررسی کنید.', fontSize: 12, ), ) @@ -604,11 +603,10 @@ class _AiMessageBarIOSState extends State { MediaService.onLoadingPickFile(context); FilePickerResult? result = await MediaService.pickPdfFile(); if (result != null) { + Uint8List? bytes = + result.files.first.bytes; // Access the bytes property + String? name = result.files.first.name; if (kIsWeb) { - Uint8List? bytes = - result.files.first.bytes; // Access the bytes property - String? name = result.files.first.name; - // Store bytes and file name directly in your state or model state.file = FilesModel( '', // No need for a file path on web @@ -619,7 +617,7 @@ class _AiMessageBarIOSState extends State { ); } else { state.file = FilesModel(result.files.single.path!, - audio: false, image: false); + name: name, audio: false, image: false); } } Future.delayed( @@ -764,7 +762,7 @@ class _AiMessageBarIOSState extends State { SizedBox( height: 24, child: MarqueeText( - text: state.file != null ? state.file!.basename : '', + text: state.file != null ? state.file!.name! : '', style: const TextStyle(fontSize: 14), stop: const Duration(seconds: 3), ),