import 'package:flutter/material.dart';

import 'package:flutter_gen/gen_l10n/l10n.dart';
import 'package:matrix/matrix.dart';

import 'package:fluffychat/utils/localized_exception_extension.dart';

extension SyncStatusLocalization on SyncStatusUpdate {
  String calcLocalizedString(BuildContext context) {
    final progress = this.progress;
    switch (status) {
      case SyncStatus.waitingForResponse:
        return L10n.of(context).waitingForServer;
      case SyncStatus.error:
        return ((error?.exception ?? Object()) as Object)
            .toLocalizedString(context);
      case SyncStatus.processing:
      case SyncStatus.cleaningUp:
      case SyncStatus.finished:
        return progress == null
            ? L10n.of(context).synchronizingPleaseWait
            : L10n.of(context).synchronizingPleaseWaitCounter(
                (progress * 100).round().toString(),
              );
    }
  }
}
