Skip to content

Commit

Permalink
Merge pull request #34 from E-Waste-Bank/riona
Browse files Browse the repository at this point in the history
Riona
  • Loading branch information
rionadani authored Dec 12, 2022
2 parents 931a1c6 + 1f8c6fe commit d01607a
Show file tree
Hide file tree
Showing 17 changed files with 896 additions and 89 deletions.
108 changes: 103 additions & 5 deletions about_us/lib/about_us.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,105 @@
library about_us;
import 'package:e_waste_bank_mobile/drawer.dart';
import 'package:flutter/material.dart';
import 'package:about_us/page/list_feedback.dart';
import 'package:about_us/page/add_feedack.dart';

/// A Calculator.
class Calculator {
/// Returns [value] plus 1.
int addOne(int value) => value + 1;
class AboutUsPage extends StatefulWidget {
const AboutUsPage({Key? key}) : super(key: key);

@override
_AboutUsPageState createState() => _AboutUsPageState();
}

class _AboutUsPageState extends State<AboutUsPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('About Us'),
),
drawer: const MyDrawer(),
body: Column(
children: <Widget>[
Padding(
padding: const EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,

children: <Widget>[
Padding(
padding: const EdgeInsets.all(10.0),
child:Align(
alignment: Alignment.center,
child: Column(
children: [
Text(
"Get To Know Us!",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 30,
),
),
Text(
"Kami hadir untuk memudahkan masyarakat untuk mengumpulkan dan mengelola barang elektronik yang sudah tidak layak pakai. Melalui aplikasi ini, masyarakat dapat mendapatkan uang melalui menjual barang elektronik yang sudah tidak layak pakai, yang nantinya akan dijemput oleh kami. Selain itu, kami memberikan informasi tips dan tricks mengenai pengelolaan E Waste.",
textAlign: TextAlign.justify,
style: TextStyle(
fontSize: 20,
),
),
Text(
"What People Say About Us?",
textAlign: TextAlign.center,
style: TextStyle(
fontWeight: FontWeight.bold,
fontSize: 30,
),
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const AddFeedbackPage()),
);
},
child: const Text(
"Add Feedback",
style: TextStyle(color: Colors.white),
),
),
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => const ListFeedbackPage()),
);
},
child: const Text(
"See Feedback",
style: TextStyle(color: Colors.white),
),
),
],
),
],
),
),
),
]
),
),
],
),
);
}
}
57 changes: 57 additions & 0 deletions about_us/lib/model/feedback.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// To parse this JSON data, do
//
// final feedbacks = feedbacksFromJson(jsonString);

import 'dart:convert';

List<Feedbacks> feedbacksFromJson(String str) => List<Feedbacks>.from(json.decode(str).map((x) => Feedbacks.fromJson(x)));

String feedbacksToJson(List<Feedbacks> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));

class Feedbacks {
Feedbacks({
required this.model,
required this.pk,
required this.fields,
});

String model;
int pk;
Fields fields;

factory Feedbacks.fromJson(Map<String, dynamic> json) => Feedbacks(
model: json["model"],
pk: json["pk"],
fields: Fields.fromJson(json["fields"]),
);

Map<String, dynamic> toJson() => {
"model": model,
"pk": pk,
"fields": fields.toJson(),
};
}

class Fields {
Fields({
required this.name,
required this.yourFeedback,
required this.date,
});

String name;
String yourFeedback;
DateTime date;

factory Fields.fromJson(Map<String, dynamic> json) => Fields(
name: json["name"],
yourFeedback: json["your_feedback"],
date: DateTime.parse(json["date"]),
);

Map<String, dynamic> toJson() => {
"name": name,
"your_feedback": yourFeedback,
"date": "${date.year.toString().padLeft(4, '0')}-${date.month.toString().padLeft(2, '0')}-${date.day.toString().padLeft(2, '0')}",
};
}
153 changes: 153 additions & 0 deletions about_us/lib/page/add_feedack.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import 'package:flutter/material.dart';
import 'package:about_us/page/list_feedback.dart';
import 'package:e_waste_bank_mobile/drawer.dart';

class AddFeedbackPage extends StatefulWidget {
const AddFeedbackPage({super.key});

@override
State<AddFeedbackPage> createState() => _AddFeedbackPageState();
}

class _AddFeedbackPageState extends State<AddFeedbackPage> {
final _formKey = GlobalKey<FormState>();
String _nama= "";
DateTime now = DateTime.now();
String _feedback = "";

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Add Your Feedback'),
),
// Menambahkan drawer menu
drawer: const MyDrawer(),
body: Form(
key: _formKey,
child: SingleChildScrollView(
child: Container(
padding: const EdgeInsets.all(20.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
// Menggunakan padding sebesar 8 pixels
padding: const EdgeInsets.all(8.0),
child: TextFormField(
decoration: InputDecoration(
labelText: "Nama",
// Menambahkan circular border agar lebih rapi
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
),
),
// Menambahkan behavior saat nama diketik
onChanged: (String? value) {
setState(() {
_nama = value!;
});
},
// Menambahkan behavior saat data disimpan
onSaved: (String? value) {
setState(() {
_nama = value!;
});
},
// Validator sebagai validasi form
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Nama tidak boleh kosong!';
}
return null;
},
),
),
Padding(
// Menggunakan padding sebesar 8 pixels
padding: const EdgeInsets.all(8.0),
child: TextFormField(
decoration: InputDecoration(
labelText: "Feedback",
// Menambahkan circular border agar lebih rapi
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(5.0),
),
),
// Menambahkan behavior saat nama diketik
onChanged: (String? value) {
setState(() {
_feedback = value!;
});
},
// Menambahkan behavior saat data disimpan
onSaved: (String? value) {
setState(() {
_feedback = value!;
});
},
// Validator sebagai validasi form
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Feedback tidak boleh kosong!';
}
return null;
},
),
),
TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(Colors.blue),
),
onPressed: () {
if (_formKey.currentState!.validate()) {
DataFeedback.listNama.add(_nama);
DataFeedback.listTanggal.add(now);
DataFeedback.listFeedback.add(_feedback);
showDialog(
context: context,
builder: (context) {
return Dialog(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
elevation: 15,
child: ListView(
padding: const EdgeInsets.only(top: 20, bottom: 20),
shrinkWrap: true,
children: <Widget>[
const Center(child: Text('Data Berhasil Ditambahkan')),
const SizedBox(height: 20),
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('Kembali'),
),
],
),

);
},
);
}
},
child: const Text(
"Simpan",
style: TextStyle(color: Colors.white),
),
),
TextButton(
onPressed: () {
Navigator.pop(context);
},
child: const Text('Kembali'),
),
],
),
),
),
),
);
}
}
Loading

0 comments on commit d01607a

Please sign in to comment.