-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #34 from E-Waste-Bank/riona
Riona
- Loading branch information
Showing
17 changed files
with
896 additions
and
89 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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), | ||
), | ||
), | ||
], | ||
), | ||
], | ||
), | ||
), | ||
), | ||
] | ||
), | ||
), | ||
], | ||
), | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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')}", | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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'), | ||
), | ||
], | ||
), | ||
), | ||
), | ||
), | ||
); | ||
} | ||
} |
Oops, something went wrong.