import 'package:fluffychat/pangea/matrix_event_wrappers/pangea_message_event.dart'; import 'package:fluffychat/pangea/matrix_event_wrappers/practice_activity_event.dart'; import 'package:fluffychat/pangea/models/practice_activities.dart/practice_activity_model.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; class GeneratePracticeActivityButton extends StatelessWidget { final PangeaMessageEvent pangeaMessageEvent; final Function(PracticeActivityEvent?) onActivityGenerated; const GeneratePracticeActivityButton({ super.key, required this.pangeaMessageEvent, required this.onActivityGenerated, }); //TODO - probably disable the generation of activities for specific messages @override Widget build(BuildContext context) { return ElevatedButton( onPressed: () async { final String? l2Code = MatrixState.pangeaController.languageController .activeL1Model(roomID: pangeaMessageEvent.room.id) ?.langCode; if (l2Code == null) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(L10n.of(context)!.noLanguagesSet), ), ); return; } final PracticeActivityEvent? practiceActivityEvent = await MatrixState .pangeaController.practiceGenerationController .getPracticeActivity( PracticeActivityRequest( candidateMessages: [ CandidateMessage( msgId: pangeaMessageEvent.eventId, roomId: pangeaMessageEvent.room.id, text: pangeaMessageEvent.representationByLanguage(l2Code)?.text ?? pangeaMessageEvent.body, ), ], userIds: pangeaMessageEvent.room.client.userID != null ? [pangeaMessageEvent.room.client.userID!] : null, ), pangeaMessageEvent, ); onActivityGenerated(practiceActivityEvent); }, child: Text(L10n.of(context)!.practice), ); } }