fluffychat/lib/pangea/widgets/user_settings/language_tile.dart
Brord van Wierst 75da9cd87d
import sort
2023-11-27 20:09:30 +01:00

85 lines
2.7 KiB
Dart

// Flutter imports:
import 'package:flutter/material.dart';
// Package imports:
import 'package:flutter_gen/gen_l10n/l10n.dart';
// Project imports:
import 'package:fluffychat/pangea/controllers/pangea_controller.dart';
import 'package:fluffychat/pangea/models/language_model.dart';
import 'package:fluffychat/widgets/matrix.dart';
import '../flag.dart';
import 'p_language_dialog.dart';
//PTODO - move this to settings_learning_view.dart and make callback a setState
class LanguageTile extends StatelessWidget {
final PangeaController pangeaController = MatrixState.pangeaController;
LanguageTile({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
final LanguageModel? sourceLanguage =
pangeaController.languageController.userL1;
final LanguageModel? targetLanguage =
pangeaController.languageController.userL2;
//PTODO - placeholder saying 'select your languages'
// if (targetLanguage == null || sourceLanguage == null) {
// debugger(when: kDebugMode);
// return const SizedBox();
// }
return ListTile(
// title: Row(
// mainAxisSize: MainAxisSize.min,
// crossAxisAlignment: CrossAxisAlignment.center,
// mainAxisAlignment: MainAxisAlignment.start,
// children: const [
// Text("Source Language"),
// SizedBox(
// width: 10,
// ),
// Icon(Icons.arrow_right_alt_outlined, size: 20),
// SizedBox(
// width: 10,
// ),
// Text("Target Language"),
// ]),
title: Text(L10n.of(context)!.myLanguages),
subtitle: Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.start,
children: [
LanguageFlag(
language: sourceLanguage,
),
const SizedBox(
width: 10,
),
Text(sourceLanguage?.getDisplayName(context) ??
L10n.of(context)!.sourceLanguage),
const SizedBox(
width: 10,
),
const Icon(Icons.arrow_right_alt_outlined, size: 20),
const SizedBox(
width: 10,
),
LanguageFlag(
language: targetLanguage,
),
const SizedBox(
width: 10,
),
Text(targetLanguage?.getDisplayName(context) ??
L10n.of(context)!.targetLanguage),
]),
trailing: const Icon(Icons.edit_outlined),
onTap: () => pLanguageDialog(context, () {}),
);
}
}