Files
hlaskovnik-reimagined/frontend/lib/pages/add.dart
T
2026-03-23 08:10:56 +01:00

88 lines
2.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:frontend/provider/quote_provider.dart';
import 'package:frontend/model/quote.dart';
import 'package:frontend/values/strings.dart';
import 'package:frontend/values/constants.dart';
class AddPage extends StatelessWidget {
const AddPage({super.key});
@override
Widget build(BuildContext context) {
final bodyController = TextEditingController(text: '');
final authorController = TextEditingController(text: '');
final provider = QuoteProvider();
return Card(
margin: const EdgeInsets.all(Constants.edgeInset),
child: Padding(
padding: const EdgeInsets.all(Constants.edgeInset),
child: Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
Strings.createQuote,
style: const TextStyle(
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 12),
TextField(
autofocus: true,
controller: bodyController,
decoration: const InputDecoration(
labelText: Strings.quote,
),
),
const SizedBox(height: 8),
TextField(
controller: authorController,
decoration: const InputDecoration(
labelText: Strings.author,
),
),
const SizedBox(height: 16),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
TextButton(
onPressed: () {
bodyController.clear();
authorController.clear();
},
child: const Text(Strings.cancel),
),
const SizedBox(width: 8),
ElevatedButton(
onPressed: () {
final quote = Quote(
id: 0,
body: bodyController.text,
author: authorController.text,
);
provider.createQuote(quote);
bodyController.clear();
authorController.clear();
},
child: const Text(Strings.save),
),
],
),
],
),
),
);
}
}