isFileSizeOverLimit function

bool isFileSizeOverLimit(
  1. BuildContext context,
  2. DataContext dataContext,
  3. List<File> selectedFiles,
  4. FileUploadAction action,
)

Implementation

bool isFileSizeOverLimit(BuildContext context, DataContext dataContext,
    List<File> selectedFiles, FileUploadAction action) {
  final defaultMaxFileSize = 100.mb;
  const defaultOverMaxFileSizeMessage =
      'The size of is which is larger than the maximum allowed';

  final totalSize = selectedFiles.fold<double>(
      0, (previousValue, element) => previousValue + (element.size ?? 0));
  final maxFileSize = action.maxFileSize?.kb ?? defaultMaxFileSize;

  final message = Utils.translateWithFallback(
    'ensemble.input.overMaxFileSizeMessage',
    action.overMaxFileSizeMessage ?? defaultOverMaxFileSizeMessage,
  );

  if (totalSize > maxFileSize) {
    ToastController().showToast(
        context,
        ShowToastAction(
            type: ToastType.error,
            message: message,
            alignment: Alignment.bottomCenter,
            duration: 3),
        null,
        dataContext: dataContext);
    if (action.onError != null) {
      ScreenController().executeAction(context, action.onError!);
    }
    return true;
  }
  return false;
}