// import 'package:dropdown_button2/dropdown_button2.dart'; // import 'package:refilc/api/providers/database_provider.dart'; // import 'package:refilc/api/providers/user_provider.dart'; // import 'package:refilc/models/settings.dart'; // import 'package:refilc/theme/colors/colors.dart'; // import 'package:refilc/utils/format.dart'; // import 'package:refilc_kreta_api/models/teacher.dart'; // import 'package:refilc_kreta_api/providers/absence_provider.dart'; // import 'package:refilc_kreta_api/providers/grade_provider.dart'; // import 'package:refilc_kreta_api/providers/timetable_provider.dart'; // import 'package:refilc_mobile_ui/common/panel/panel.dart'; // import 'package:refilc_mobile_ui/common/panel/panel_button.dart'; // // import 'package:refilc_plus/models/premium_scopes.dart'; // // import 'package:refilc_plus/providers/plus_provider.dart'; // // import 'package:refilc_plus/ui/mobile/plus/upsell.dart'; // import 'package:flutter/cupertino.dart'; // import 'package:flutter/material.dart'; // import 'package:flutter_feather_icons/flutter_feather_icons.dart'; // import 'package:provider/provider.dart'; // import 'package:refilc_mobile_ui/screens/settings/modify_names.i18n.dart'; // class MenuRenamedTeachers extends StatelessWidget { // const MenuRenamedTeachers({Key? key, required this.settings}) // : super(key: key); // final SettingsProvider settings; // @override // Widget build(BuildContext context) { // return PanelButton( // padding: const EdgeInsets.only(left: 14.0), // onPressed: () { // // if (!Provider.of(context, listen: false) // // .hasScope(PremiumScopes.renameTeachers)) { // // PlusLockedFeaturePopup.show( // // context: context, feature: PremiumFeature.teacherrename); // // return; // // } // Navigator.of(context, rootNavigator: true).push( // CupertinoPageRoute(builder: (context) => const ModifyTeacherNames()), // ); // }, // title: Text( // "rename_teachers".i18n, // style: TextStyle( // color: AppColors.of(context) // .text // .withOpacity(settings.renamedTeachersEnabled ? 1.0 : .5)), // ), // leading: settings.renamedTeachersEnabled // ? const Icon(FeatherIcons.users) // : Icon(FeatherIcons.users, // color: AppColors.of(context).text.withOpacity(.25)), // trailingDivider: true, // trailing: Switch( // onChanged: (v) async { // // if (!Provider.of(context, listen: false) // // .hasScope(PremiumScopes.renameTeachers)) { // // PlusLockedFeaturePopup.show( // // context: context, feature: PremiumFeature.teacherrename); // // return; // // } // settings.update(renamedTeachersEnabled: v); // await Provider.of(context, listen: false) // .convertBySettings(); // await Provider.of(context, listen: false) // .convertBySettings(); // await Provider.of(context, listen: false) // .convertBySettings(); // }, // value: settings.renamedTeachersEnabled, // activeColor: Theme.of(context).colorScheme.secondary, // ), // ); // } // } // class ModifyTeacherNames extends StatefulWidget { // const ModifyTeacherNames({Key? key}) : super(key: key); // @override // State createState() => _ModifyTeacherNamesState(); // } // class _ModifyTeacherNamesState extends State { // final GlobalKey _scaffoldKey = GlobalKey(); // final _teacherName = TextEditingController(); // String? selectedTeacherId; // late List teachers; // late UserProvider user; // late DatabaseProvider dbProvider; // late SettingsProvider settings; // @override // void initState() { // super.initState(); // teachers = (Provider.of(context, listen: false) // .grades // .map((e) => e.teacher) // .toSet() // .toList() // ..sort((a, b) => a.name.compareTo(b.name))); // user = Provider.of(context, listen: false); // dbProvider = Provider.of(context, listen: false); // } // Future> fetchRenamedTeachers() async { // return await dbProvider.userQuery.renamedTeachers(userId: user.id!); // } // void showRenameDialog() { // showDialog( // context: context, // builder: (context) => StatefulBuilder(builder: (context, setS) { // return AlertDialog( // shape: const RoundedRectangleBorder( // borderRadius: BorderRadius.all(Radius.circular(14.0))), // title: Text("rename_teacher".i18n), // content: Column( // mainAxisSize: MainAxisSize.min, // children: [ // DropdownButton2( // items: teachers // .map((item) => DropdownMenuItem( // value: item.id, // child: Text( // item.name, // style: TextStyle( // fontSize: 14, // fontWeight: FontWeight.bold, // color: AppColors.of(context).text, // ), // overflow: TextOverflow.ellipsis, // ), // )) // .toList(), // onChanged: (String? v) async { // final renamedSubs = await fetchRenamedTeachers(); // setS(() { // selectedTeacherId = v; // if (renamedSubs.containsKey(selectedTeacherId)) { // _teacherName.text = renamedSubs[selectedTeacherId]!; // } else { // _teacherName.text = ""; // } // }); // }, // iconStyleData: IconStyleData( // iconSize: 14, // iconEnabledColor: AppColors.of(context).text, // iconDisabledColor: AppColors.of(context).text, // ), // underline: const SizedBox(), // menuItemStyleData: MenuItemStyleData(height: 40,), // itemHeight: 40, // itemPadding: const EdgeInsets.only(left: 14, right: 14), // buttonWidth: 50, // dropdownWidth: 300, // dropdownPadding: null, // buttonDecoration: BoxDecoration( // borderRadius: BorderRadius.circular(8), // ), // dropdownDecoration: BoxDecoration( // borderRadius: BorderRadius.circular(14), // ), // dropdownElevation: 8, // scrollbarRadius: const Radius.circular(40), // scrollbarThickness: 6, // scrollbarAlwaysShow: true, // offset: const Offset(-10, -10), // buttonSplashColor: Colors.transparent, // customButton: Container( // width: double.infinity, // decoration: BoxDecoration( // border: Border.all(color: Colors.grey, width: 2), // borderRadius: BorderRadius.circular(12.0), // ), // padding: const EdgeInsets.symmetric( // vertical: 12.0, horizontal: 8.0), // child: Text( // selectedTeacherId == null // ? "select_teacher".i18n // : teachers // .firstWhere( // (element) => element.id == selectedTeacherId, // orElse: () => Teacher( // id: 'noid', name: "select_teacher".i18n), // ) // .name, // style: Theme.of(context).textTheme.titleSmall!.copyWith( // fontWeight: FontWeight.w700, // color: AppColors.of(context).text.withOpacity(0.75)), // overflow: TextOverflow.ellipsis, // maxLines: 2, // textAlign: TextAlign.center, // ), // ), // ), // const Padding( // padding: EdgeInsets.symmetric(vertical: 8.0), // child: Icon(FeatherIcons.arrowDown, size: 32), // ), // TextField( // controller: _teacherName, // decoration: InputDecoration( // border: OutlineInputBorder( // borderSide: // const BorderSide(color: Colors.grey, width: 1.5), // borderRadius: BorderRadius.circular(12.0), // ), // focusedBorder: OutlineInputBorder( // borderSide: // const BorderSide(color: Colors.grey, width: 1.5), // borderRadius: BorderRadius.circular(12.0), // ), // contentPadding: const EdgeInsets.symmetric(horizontal: 12.0), // hintText: "modified_name".i18n, // suffixIcon: IconButton( // icon: const Icon( // FeatherIcons.x, // color: Colors.grey, // ), // onPressed: () { // setState(() { // _teacherName.text = ""; // }); // }, // ), // ), // ), // ], // ), // actions: [ // TextButton( // child: Text( // "cancel".i18n, // style: const TextStyle(fontWeight: FontWeight.w500), // ), // onPressed: () { // Navigator.of(context).maybePop(); // }, // ), // TextButton( // child: Text( // "done".i18n, // style: const TextStyle(fontWeight: FontWeight.w500), // ), // onPressed: () async { // if (selectedTeacherId != null) { // final renamedSubs = await fetchRenamedTeachers(); // renamedSubs[selectedTeacherId!] = _teacherName.text; // await dbProvider.userStore // .storeRenamedTeachers(renamedSubs, userId: user.id!); // await Provider.of(context, listen: false) // .convertBySettings(); // await Provider.of(context, listen: false) // .convertBySettings(); // await Provider.of(context, listen: false) // .convertBySettings(); // } // Navigator.of(context).pop(true); // setState(() {}); // }, // ), // ], // ); // }), // ).then((val) { // _teacherName.text = ""; // selectedTeacherId = null; // }); // } // @override // Widget build(BuildContext context) { // settings = Provider.of(context); // return Scaffold( // key: _scaffoldKey, // appBar: AppBar( // surfaceTintColor: Theme.of(context).scaffoldBackgroundColor, // leading: BackButton(color: AppColors.of(context).text), // title: Text( // "modify_teachers".i18n, // style: TextStyle(color: AppColors.of(context).text), // ), // ), // body: Padding( // padding: const EdgeInsets.symmetric(vertical: 16.0, horizontal: 24.0), // child: SingleChildScrollView( // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // // Panel( // // child: SwitchListTile( // // title: Text("italics_toggle".i18n), // // onChanged: (value) => // // settings.update(renamedTeachersItalics: value), // // value: settings.renamedTeachersItalics, // // ), // // ), // // const SizedBox( // // height: 20, // // ), // InkWell( // onTap: showRenameDialog, // borderRadius: BorderRadius.circular(12.0), // child: Container( // width: double.infinity, // decoration: BoxDecoration( // border: Border.all(color: Colors.grey, width: 2), // borderRadius: BorderRadius.circular(12.0), // ), // padding: const EdgeInsets.symmetric( // vertical: 18.0, horizontal: 12.0), // child: Center( // child: Text( // "rename_new_teacher".i18n, // style: TextStyle( // fontWeight: FontWeight.w600, // fontSize: 18, // color: AppColors.of(context).text.withOpacity(.85), // ), // ), // ), // ), // ), // const SizedBox( // height: 30, // ), // FutureBuilder>( // future: fetchRenamedTeachers(), // builder: (context, snapshot) { // if (!snapshot.hasData || snapshot.data!.isEmpty) { // return Container(); // } // return Panel( // title: Text("renamed_teachers".i18n), // child: Column( // children: snapshot.data!.keys.map( // (key) { // Teacher? teacher = teachers.firstWhere( // (element) => key == element.id, // orElse: () => Teacher(id: 'noid', name: 'noname'), // ); // if (teacher.id == 'noid') { // return const SizedBox( // width: 0, // height: 0, // ); // } // String renameTo = snapshot.data![key]!; // return RenamedTeacherItem( // teacher: teacher, // renamedTo: renameTo, // modifyCallback: () { // setState(() { // selectedTeacherId = teacher.id; // _teacherName.text = renameTo; // }); // showRenameDialog(); // }, // removeCallback: () { // setState(() { // Map subs = // Map.from(snapshot.data!); // subs.remove(key); // dbProvider.userStore.storeRenamedTeachers( // subs, // userId: user.id!); // }); // }, // ); // }, // ).toList(), // ), // ); // }, // ), // ], // ), // ), // )); // } // } // class RenamedTeacherItem extends StatelessWidget { // const RenamedTeacherItem({ // Key? key, // required this.teacher, // required this.renamedTo, // required this.modifyCallback, // required this.removeCallback, // }) : super(key: key); // final Teacher teacher; // final String renamedTo; // final void Function() modifyCallback; // final void Function() removeCallback; // @override // Widget build(BuildContext context) { // return ListTile( // minLeadingWidth: 32.0, // dense: true, // contentPadding: // const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), // shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)), // visualDensity: VisualDensity.compact, // onTap: () {}, // leading: Icon(FeatherIcons.user, // color: AppColors.of(context).text.withOpacity(.75)), // title: InkWell( // onTap: modifyCallback, // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text( // teacher.name.capital(), // style: TextStyle( // fontWeight: FontWeight.w500, // fontSize: 14, // color: AppColors.of(context).text.withOpacity(.75)), // maxLines: 1, // overflow: TextOverflow.ellipsis, // ), // Text( // renamedTo, // style: const TextStyle(fontWeight: FontWeight.w500, fontSize: 16), // maxLines: 2, // overflow: TextOverflow.ellipsis, // ), // ], // ), // ), // trailing: InkWell( // onTap: removeCallback, // child: Icon(FeatherIcons.trash, // color: AppColors.of(context).red.withOpacity(.75)), // ), // ); // } // }