Files
sendico/frontend/pweb/lib/controllers/payments/payment_config.dart
2026-02-21 21:55:20 +03:00

56 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:pshared/models/payment/methods/data.dart';
import 'package:pshared/models/payment/methods/type.dart';
import 'package:pshared/provider/recipient/pmethods.dart';
import 'package:pweb/pages/payment_methods/add/widget.dart';
import 'package:pweb/widgets/dialogs/confirmation_dialog.dart';
import 'package:pweb/generated/i18n/app_localizations.dart';
class PaymentConfigController {
final BuildContext context;
PaymentConfigController(this.context);
Future<void> addMethod() async => showDialog<PaymentMethodData>(
context: context,
builder: (_) => const AddPaymentMethodDialog(),
);
Future<void> editMethod(PaymentMethod method) async {
// TODO: implement edit functionality
}
Future<void> deleteMethod(PaymentMethod method) async {
final methodsProvider = context.read<PaymentMethodsProvider>();
final l10n = AppLocalizations.of(context)!;
final confirmed = await showConfirmationDialog(
context: context,
title: l10n.delete,
message: l10n.deletePaymentConfirmation,
confirmLabel: l10n.delete,
);
if (confirmed) {
methodsProvider.delete(method.id);
}
}
void toggleEnabled(PaymentMethod method, bool value) {
context.read<PaymentMethodsProvider>().setArchivedMethod(method: method, newIsArchived: value);
}
void makeMain(PaymentMethod method) {
context.read<PaymentMethodsProvider>().makeMain(method);
}
void reorder(int oldIndex, int newIndex) {
// TODO: rimplement on top of Indexable
// context.read<PaymentMethodsProvider>().reorderMethods(oldIndex, newIndex);
}
}