shareFile static method

Future<void> shareFile({
  1. required String source,
  2. required String fileExtension,
  3. String? fileName,
  4. String? subject,
  5. BuildContext? context,
})

✅ 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();
    }
  }
}