achievement crud complete
This commit is contained in:
@ -1,18 +1,74 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:drift/drift.dart' hide Column;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:sendtrain/daos/sessions_dao.dart';
|
||||
import 'package:sendtrain/database/database.dart';
|
||||
import 'package:sendtrain/widgets/generic/elements/form_text_input.dart';
|
||||
|
||||
class AchievementEditor extends StatefulWidget {
|
||||
const AchievementEditor({super.key, this.achievements, this.callback});
|
||||
// class AchievementEditor extends StatefulWidget {
|
||||
// const AchievementEditor({super.key, required this.session, this.callback});
|
||||
|
||||
final List? achievements;
|
||||
// final Session session;
|
||||
// final Function? callback;
|
||||
|
||||
// @override
|
||||
// State<AchievementEditor> createState() => _AchievementEditorState();
|
||||
// }
|
||||
|
||||
// class _AchievementEditorState extends State<AchievementEditor> {
|
||||
class AchievementEditor extends StatelessWidget {
|
||||
AchievementEditor({super.key, required this.session, this.callback});
|
||||
|
||||
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
|
||||
final TextEditingController tec = TextEditingController();
|
||||
final Session session;
|
||||
final Function? callback;
|
||||
|
||||
@override
|
||||
State<AchievementEditor> createState() => _AchievementEditorState();
|
||||
}
|
||||
Widget build(
|
||||
BuildContext context,
|
||||
) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.fromLTRB(15, 0, 15, 15),
|
||||
child: Form(
|
||||
key: _formKey,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: <Widget>[
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 10, bottom: 10),
|
||||
child: Text('Create Achievement',
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.titleLarge)),
|
||||
FormTextInput(controller: tec, title: 'Achievement'),
|
||||
Row(mainAxisAlignment: MainAxisAlignment.end, children: [
|
||||
Padding(
|
||||
padding: EdgeInsets.only(top: 10),
|
||||
child: FilledButton(
|
||||
child: Text('Submit'),
|
||||
onPressed: () async {
|
||||
session.achievements;
|
||||
List achievements =
|
||||
json.decode(session.achievements!);
|
||||
achievements.add(tec.text);
|
||||
Session updatedSession = session.copyWith(
|
||||
achievements:
|
||||
Value<String>(json.encode(achievements)));
|
||||
|
||||
class _AchievementEditorState extends State<AchievementEditor> {
|
||||
@override
|
||||
Widget build(BuildContext context, ) {
|
||||
return Text('this is a test');
|
||||
SessionsDao(Provider.of<AppDatabase>(context,
|
||||
listen: false))
|
||||
.replace(updatedSession);
|
||||
|
||||
Navigator.pop(_formKey.currentContext!, 'Submit');
|
||||
|
||||
if (callback != null) {
|
||||
await callback!();
|
||||
}
|
||||
}))
|
||||
])
|
||||
])));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user