shareFile static method
✅ IMPROVED: Share file with cleanup
Implementation
static Future<void> shareFile({
required String source,
required String fileExtension,
String? fileName,
String? subject,
BuildContext? context,
}) async {
FileData? fileData;
try {
fileData = await loadFile(source, fileExtension);
final params = ShareParams(
text: fileName ?? 'Shared file',
files: [XFile(fileData.path)],
);
await SharePlus.instance.share(params);
} catch (e) {
if (context != null && context.mounted) {
_showError(context, 'Share error: $e');
}
rethrow;
} finally {
// ✅ Cleanup temp file after sharing
if (fileData != null) {
await Future.delayed(const Duration(seconds: 5));
await fileData.cleanup();
}
}
}