athrainsky 1 vuosi sitten
vanhempi
commit
6f44f0763b

+ 276 - 0
lib/addbug.dart

@@ -0,0 +1,276 @@
+import 'package:flutter/material.dart';
+import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
+
+class AddBugPage extends StatelessWidget {
+  const AddBugPage({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      appBar: CustomAppbar(),
+      backgroundColor: Colors.white,
+      body: Stack(children: [
+        SingleChildScrollView(
+          child: Column(
+            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+            children: [
+              Center(
+                  child: Row(
+                mainAxisAlignment: MainAxisAlignment.center,
+                children: [
+                  Text(
+                    'ADD BUG',
+                    style: TextStyle(color: Colors.black, fontSize: 48),
+                  ),
+                ],
+              )),
+              Column(
+                children: [
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Description', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter QC', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Dev', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Platform', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Goodday URL', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Image URL', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Level', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Status', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Dev Status', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(20.0),
+                    child: SizedBox(
+                      width: 396,
+                      height: 61,
+                      child: ElevatedButton(
+                        onPressed: null, //todo save edit
+                        style: ElevatedButton.styleFrom(
+                          backgroundColor: Colors.black, //todo putih lage
+                          side: BorderSide(color: Colors.white),
+                          shape: RoundedRectangleBorder(
+                            borderRadius: BorderRadius.circular(12.0),
+                          ),
+                        ),
+                        child: Text(
+                          'Save',
+                          style: TextStyle(color: Colors.white),
+                        ),
+                      ),
+                    ),
+                  ),
+                ],
+              ),
+            ],
+          ),
+        ),
+      ]),
+      bottomNavigationBar: Footer(),
+    );
+  }
+}

+ 122 - 0
lib/addplatform.dart

@@ -0,0 +1,122 @@
+import 'package:flutter/material.dart';
+import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
+
+class AddPlatformPage extends StatelessWidget {
+  const AddPlatformPage({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      appBar: CustomAppbar(),
+      backgroundColor: Colors.white,
+      body: Column(
+        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+        children: [
+          Center(
+              child: Row(
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: [
+              Text(
+                'ADD PLATFORM',
+                style: TextStyle(color: Colors.black, fontSize: 48),
+              ),
+            ],
+          )),
+          Column(
+            children: [
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Platform Name', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Project Name', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Project Description', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(20.0),
+                child: SizedBox(
+                  width: 396,
+                  height: 61,
+                  child: ElevatedButton(
+                    onPressed: null, //todo save edit
+                    style: ElevatedButton.styleFrom(
+                      backgroundColor: Colors.black, //todo putih lage
+                      side: BorderSide(color: Colors.white),
+                      shape: RoundedRectangleBorder(
+                        borderRadius: BorderRadius.circular(12.0),
+                      ),
+                    ),
+                    child: Text(
+                      'Save',
+                      style: TextStyle(color: Colors.white),
+                    ),
+                  ),
+                ),
+              ),
+            ],
+          ),
+        ],
+      ),
+      bottomNavigationBar: Footer(),
+    );
+  }
+}

+ 282 - 0
lib/editbug.dart

@@ -0,0 +1,282 @@
+import 'package:flutter/material.dart';
+import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
+import 'package:namer_app/header.dart';
+
+class EditBugPage extends StatelessWidget {
+  const EditBugPage({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
+      backgroundColor: Colors.white,
+      body: Stack(children: [
+        SingleChildScrollView(
+          child: Column(
+            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+            children: [
+              Center(
+                  child: Row(
+                mainAxisAlignment: MainAxisAlignment.center,
+                children: [
+                  Text(
+                    'EDIT BUG',
+                    style: TextStyle(color: Colors.black, fontSize: 48),
+                  ),
+                ],
+              )),
+              Column(
+                children: [
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Description', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter QC', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Dev', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Platform', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Goodday URL', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Image URL', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Level', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Status', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(8.0),
+                    child: SizedBox(
+                      width: 396,
+                      child: TextField(
+                        decoration: InputDecoration(
+                            border: OutlineInputBorder(),
+                            focusedBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            enabledBorder: OutlineInputBorder(
+                                borderRadius:
+                                    BorderRadius.all(Radius.circular(12)),
+                                borderSide: BorderSide(color: Colors.black)),
+                            labelText: 'Enter Dev Status', //todo get data
+                            labelStyle: TextStyle(color: Colors.black),
+                            filled: true,
+                            fillColor: Colors.white.withOpacity(0.25)),
+                        cursorColor: Colors.black,
+                        style: TextStyle(color: Colors.black),
+                      ),
+                    ),
+                  ),
+                  Padding(
+                    padding: const EdgeInsets.all(20.0),
+                    child: SizedBox(
+                      width: 396,
+                      height: 61,
+                      child: ElevatedButton(
+                        onPressed: null, //todo save edit
+                        style: ElevatedButton.styleFrom(
+                          backgroundColor: Colors.black, //todo putih lage
+                          side: BorderSide(color: Colors.white),
+                          shape: RoundedRectangleBorder(
+                            borderRadius: BorderRadius.circular(12.0),
+                          ),
+                        ),
+                        child: Text(
+                          'Edit',
+                          style: TextStyle(color: Colors.white),
+                        ),
+                      ),
+                    ),
+                  ),
+                ],
+              ),
+            ],
+          ),
+        ),
+      ]),
+      bottomNavigationBar: Footer(),
+    );
+  }
+}

+ 128 - 0
lib/editplatform.dart

@@ -0,0 +1,128 @@
+import 'package:flutter/material.dart';
+import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
+import 'package:namer_app/header.dart';
+
+class EditPlatformPage extends StatelessWidget {
+  const EditPlatformPage({super.key});
+
+  @override
+  Widget build(BuildContext context) {
+    return Scaffold(
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
+      backgroundColor: Colors.white,
+      body: Column(
+        mainAxisAlignment: MainAxisAlignment.spaceEvenly,
+        children: [
+          Center(
+              child: Row(
+            mainAxisAlignment: MainAxisAlignment.center,
+            children: [
+              Text(
+                'EDIT PLATFORM',
+                style: TextStyle(color: Colors.black, fontSize: 48),
+              ),
+            ],
+          )),
+          Column(
+            children: [
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Platform Name', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Project Name', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(8.0),
+                child: SizedBox(
+                  width: 396,
+                  child: TextField(
+                    decoration: InputDecoration(
+                        border: OutlineInputBorder(),
+                        focusedBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        enabledBorder: OutlineInputBorder(
+                            borderRadius: BorderRadius.all(Radius.circular(12)),
+                            borderSide: BorderSide(color: Colors.black)),
+                        labelText: 'Enter Project Description', //todo get data
+                        labelStyle: TextStyle(color: Colors.black),
+                        filled: true,
+                        fillColor: Colors.white.withOpacity(0.25)),
+                    cursorColor: Colors.black,
+                    style: TextStyle(color: Colors.black),
+                  ),
+                ),
+              ),
+              Padding(
+                padding: const EdgeInsets.all(20.0),
+                child: SizedBox(
+                  width: 396,
+                  height: 61,
+                  child: ElevatedButton(
+                    onPressed: null, //todo save edit
+                    style: ElevatedButton.styleFrom(
+                      backgroundColor: Colors.black, //todo putih lage
+                      side: BorderSide(color: Colors.white),
+                      shape: RoundedRectangleBorder(
+                        borderRadius: BorderRadius.circular(12.0),
+                      ),
+                    ),
+                    child: Text(
+                      'Edit',
+                      style: TextStyle(color: Colors.white),
+                    ),
+                  ),
+                ),
+              ),
+            ],
+          ),
+        ],
+      ),
+      bottomNavigationBar: Footer(),
+    );
+  }
+}

+ 7 - 5
lib/edituser.dart

@@ -1,5 +1,6 @@
 import 'package:flutter/material.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class EditUserPage extends StatelessWidget {
@@ -8,11 +9,12 @@ class EditUserPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       backgroundColor: Colors.white,
       body: Column(
         mainAxisAlignment: MainAxisAlignment.spaceEvenly,

+ 17 - 9
lib/footer.dart

@@ -7,15 +7,23 @@ class Footer extends StatelessWidget {
   Widget build(BuildContext context) {
     return BottomAppBar(
       height: 50,
-      child: Padding(
-        padding: EdgeInsets.only(left: 120, right: 120),
-        child: Row(
-          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
-          children: [
-            //todo clickable
-            Text('About Us'), Text('Contact'), Text('Privacy Policy')
-          ],
-        ),
+      child: Row(
+        mainAxisAlignment: MainAxisAlignment.center,
+        children: [
+          //todo clickable
+          Padding(
+            padding: const EdgeInsets.symmetric(horizontal: 8),
+            child: Text('About Us'),
+          ),
+          Padding(
+            padding: const EdgeInsets.symmetric(horizontal: 8),
+            child: Text('Contact'),
+          ),
+          Padding(
+            padding: const EdgeInsets.symmetric(horizontal: 8),
+            child: Text('Privacy Policy'),
+          )
+        ],
       ),
     );
   }

+ 281 - 0
lib/head.dart

@@ -0,0 +1,281 @@
+import 'package:dropdown_button2/dropdown_button2.dart';
+import 'package:flutter/material.dart';
+import 'package:go_router/go_router.dart';
+
+class CustomAppbar extends StatefulWidget implements PreferredSizeWidget {
+  final bool? isBack;
+  final TextEditingController? controller;
+
+  const CustomAppbar({super.key, this.isBack, this.controller});
+
+  @override
+  State<CustomAppbar> createState() => _CustomAppbarState();
+
+  @override
+  Size get preferredSize => Size(15, 50);
+}
+
+class _CustomAppbarState extends State<CustomAppbar> {
+  @override
+  Widget build(BuildContext context) {
+    return AppBar(
+      backgroundColor: Colors.white,
+      leading: Icon(Icons.bug_report),
+      titleSpacing: 0,
+      title: Text(
+        'Bug Listing',
+        style: TextStyle(fontSize: 28, fontWeight: FontWeight.w500),
+      ),
+      actions: [
+        Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 8.0),
+          child: DropdownButtonHideUnderline(
+            child: DropdownButton2(
+              items: [
+                DropdownMenuItem(
+                  child: Text('Home'),
+                )
+              ],
+              onChanged: (value) => context.go('/'),
+            ),
+          ),
+        ),
+        Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 8.0),
+          child: DropdownButtonHideUnderline(
+            child: DropdownButton2(
+              customButton: Text(
+                'Bug',
+                style: TextStyle(fontSize: 15),
+              ),
+              items: [
+                ...MenuItems2.firstItems.map(
+                  (item) => DropdownMenuItem<MenuItem>(
+                    value: item,
+                    child: MenuItems2.buildItem(item),
+                  ),
+                ),
+              ],
+              onChanged: (value) {
+                MenuItems2.onChanged(context, value!);
+              },
+              dropdownStyleData: DropdownStyleData(
+                width: 150,
+                padding: const EdgeInsets.symmetric(vertical: 6),
+                decoration: BoxDecoration(
+                  borderRadius: BorderRadius.circular(4),
+                ),
+                offset: const Offset(0, 8),
+              ),
+              menuItemStyleData: MenuItemStyleData(
+                customHeights: [
+                  ...List<double>.filled(MenuItems2.firstItems.length, 48),
+                ],
+                padding: const EdgeInsets.only(left: 16, right: 16),
+              ),
+            ),
+          ),
+        ),
+        Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 8.0),
+          child: DropdownButtonHideUnderline(
+            child: DropdownButton2(
+              customButton: Text(
+                'Platform',
+                style: TextStyle(fontSize: 15),
+              ),
+              items: [
+                ...MenuItems.firstItems.map(
+                  (item) => DropdownMenuItem<MenuItem>(
+                    value: item,
+                    child: MenuItems.buildItem(item),
+                  ),
+                ),
+              ],
+              onChanged: (value) {
+                MenuItems.onChanged(context, value!);
+              },
+              dropdownStyleData: DropdownStyleData(
+                width: 150,
+                padding: const EdgeInsets.symmetric(vertical: 6),
+                decoration: BoxDecoration(
+                  borderRadius: BorderRadius.circular(4),
+                ),
+                offset: const Offset(0, 8),
+              ),
+              menuItemStyleData: MenuItemStyleData(
+                customHeights: [
+                  ...List<double>.filled(MenuItems.firstItems.length, 48),
+                ],
+                padding: const EdgeInsets.only(left: 16, right: 16),
+              ),
+            ),
+          ),
+        ),
+        Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 8),
+          child: DropdownButtonHideUnderline(
+            child: DropdownButton2(
+              items: [
+                DropdownMenuItem(
+                  child: Text('Maintenance'),
+                )
+              ],
+              onChanged: (value) => context.go('/maintenance'),
+            ),
+          ),
+        ),
+        Padding(
+          padding: const EdgeInsets.symmetric(horizontal: 6),
+          child: DropdownButtonHideUnderline(
+            child: DropdownButton2(
+              items: [
+                DropdownMenuItem(
+                  child: Text('Log Out'),
+                )
+              ],
+              onChanged: null,
+            ),
+          ),
+        ),
+      ],
+    );
+  }
+}
+
+class MenuItem {
+  const MenuItem({
+    required this.text,
+  });
+
+  final String text;
+}
+
+abstract class MenuItems {
+  static const List<MenuItem> firstItems = [add, edit, list];
+
+  static const add = MenuItem(text: 'Add Platform');
+  static const edit = MenuItem(text: 'Edit Platform');
+  static const list = MenuItem(text: 'List Platform');
+
+  static Widget buildItem(MenuItem item) {
+    return Row(
+      children: [
+        Expanded(
+          child: Text(
+            item.text,
+            style: const TextStyle(
+              color: Colors.black,
+            ),
+          ),
+        ),
+      ],
+    );
+  }
+
+  static void onChanged(BuildContext context, MenuItem item) {
+    switch (item) {
+      case MenuItems.add:
+        context.go('/addplatform');
+        break;
+      case MenuItems.edit:
+        context.go('/listplatform/editplatform');
+        break;
+      case MenuItems.list:
+        context.go('/listplatform');
+        break;
+    }
+  }
+}
+
+abstract class MenuItems2 {
+  static const List<MenuItem> firstItems = [add, edit, list];
+
+  static const add = MenuItem(text: 'Add Bug');
+  static const edit = MenuItem(text: 'Edit Bug');
+  static const list = MenuItem(text: 'List Bug');
+
+  static Widget buildItem(MenuItem item) {
+    return Row(
+      children: [
+        Expanded(
+          child: Text(
+            item.text,
+            style: const TextStyle(
+              color: Colors.black,
+            ),
+          ),
+        ),
+      ],
+    );
+  }
+
+  static void onChanged(BuildContext context, MenuItem item) {
+    switch (item) {
+      case MenuItems2.add:
+        context.go('/addbug');
+        break;
+      case MenuItems2.edit:
+        context.go('/login/bug/editbug');
+        break;
+      case MenuItems2.list:
+        context.go('/login/bug');
+        break;
+    }
+  }
+}
+
+// class Header extends StatelessWidget implements PreferredSizeWidget {
+//   final Text title;
+//   final AppBar appBar;
+//   final List<Widget> widgets;
+
+//   const Header(
+//       {super.key,
+//       required this.title,
+//       required this.appBar,
+//       required this.widgets});
+
+//   @override
+//   Widget build(BuildContext context) {
+//     return AppBar(
+//       backgroundColor: Colors.white,
+//       leading: Icon(Icons.bug_report),
+//       titleSpacing: 0,
+//       title: Text(
+//         'Bug Listing',
+//         style: TextStyle(fontSize: 28, fontWeight: FontWeight.w500),
+//       ),
+//       actions: [
+//         //todo hide kalo non login
+//         ElevatedButton(
+//             onPressed: () => context.go('/'),
+//             style: ElevatedButton.styleFrom(surfaceTintColor: Colors.white),
+//             child: Text(
+//               'Home',
+//               style: TextStyle(color: Colors.black),
+//             )),
+//         ElevatedButton(
+//           onPressed: () => context.go('/listplatform'),
+//           style: ElevatedButton.styleFrom(surfaceTintColor: Colors.white),
+//           child: Text(
+//             'Platform',
+//             style: TextStyle(color: Colors.black),
+//           ),
+//         ),
+//         ElevatedButton(
+//           onPressed: () => context.go('/maintenance'),
+//           style: ElevatedButton.styleFrom(surfaceTintColor: Colors.white),
+//           child: Text(
+//             'Maintenance',
+//             style: TextStyle(color: Colors.black),
+//           ),
+//         ),
+//         Text('Log Out'),
+//       ],
+//     );
+//   }
+
+//   @override
+//   Size get preferredSize => Size.fromHeight(appBar.preferredSize.height);
+// }

+ 1 - 8
lib/header.dart

@@ -1,5 +1,3 @@
-// ignore_for_file: file_names
-
 import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 
@@ -8,8 +6,6 @@ class Header extends StatelessWidget implements PreferredSizeWidget {
   final AppBar appBar;
   final List<Widget> widgets;
 
-  /// you can add more fields that meet your needs
-
   const Header(
       {super.key,
       required this.title,
@@ -51,10 +47,7 @@ class Header extends StatelessWidget implements PreferredSizeWidget {
             style: TextStyle(color: Colors.black),
           ),
         ),
-        Padding(
-          padding: const EdgeInsets.all(8.0),
-          child: Text('Log Out'),
-        ),
+        Text('Log Out'),
       ],
     );
   }

+ 20 - 6
lib/listbug.dart

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 import 'package:namer_app/databug.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListBugPage extends StatelessWidget {
@@ -10,11 +11,12 @@ class ListBugPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(
@@ -33,7 +35,9 @@ class ListBugPage extends StatelessWidget {
                 children: List.generate(
                     2,
                     (i) => SizedBox(
+                          // height: 80,
                           child: ListTile(
+                            // visualDensity: VisualDensity(vertical: 4),
                             leading: SizedBox(
                               child: Icon(Icons.bug_report),
                             ),
@@ -99,7 +103,7 @@ class ButtonUser extends StatelessWidget {
       mainAxisSize: MainAxisSize.min,
       children: [
         ElevatedButton(
-          onPressed: null,
+          onPressed: () => context.go('/login/bug/editbug'),
           style: ElevatedButton.styleFrom(
             backgroundColor: Colors.black,
           ),
@@ -108,6 +112,16 @@ class ButtonUser extends StatelessWidget {
             style: TextStyle(color: Colors.white),
           ),
         ),
+        ElevatedButton(
+          onPressed: null,
+          style: ElevatedButton.styleFrom(
+            backgroundColor: Colors.black,
+          ),
+          child: Text(
+            'Delete',
+            style: TextStyle(color: Colors.white),
+          ),
+        ),
         ElevatedButton(
           onPressed: () => context.go('/login/bug/comment'),
           style: ElevatedButton.styleFrom(

+ 7 - 6
lib/listcomment.dart

@@ -1,7 +1,7 @@
 import 'package:flutter/material.dart';
-import 'package:go_router/go_router.dart';
 import 'package:namer_app/datacomment.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListCommentPage extends StatelessWidget {
@@ -10,11 +10,12 @@ class ListCommentPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(

+ 7 - 5
lib/listmember.dart

@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:namer_app/datamember.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListMemberPage extends StatelessWidget {
@@ -9,11 +10,12 @@ class ListMemberPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(

+ 20 - 6
lib/listplatform.dart

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 import 'package:namer_app/dataplatform.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListPlatformPage extends StatelessWidget {
@@ -10,11 +11,12 @@ class ListPlatformPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(
@@ -33,7 +35,9 @@ class ListPlatformPage extends StatelessWidget {
                 children: List.generate(
                     4,
                     (i) => SizedBox(
+                          // height: 80,
                           child: ListTile(
+                            // visualDensity: VisualDensity(vertical: 4),
                             leading: SizedBox(
                               child: Icon(Icons.phone),
                             ),
@@ -75,7 +79,7 @@ class ButtonUser extends StatelessWidget {
       mainAxisSize: MainAxisSize.min,
       children: [
         ElevatedButton(
-          onPressed: null,
+          onPressed: () => context.go('/listplatform/editplatform'),
           style: ElevatedButton.styleFrom(
             backgroundColor: Colors.black,
           ),
@@ -84,6 +88,16 @@ class ButtonUser extends StatelessWidget {
             style: TextStyle(color: Colors.white),
           ),
         ),
+        ElevatedButton(
+          onPressed: null,
+          style: ElevatedButton.styleFrom(
+            backgroundColor: Colors.black,
+          ),
+          child: Text(
+            'Delete',
+            style: TextStyle(color: Colors.white),
+          ),
+        ),
         ElevatedButton(
           onPressed: () => context.go('/listplatform/listmember'),
           style: ElevatedButton.styleFrom(

+ 7 - 5
lib/listtable.dart

@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:namer_app/datatable.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListTablePage extends StatelessWidget {
@@ -9,11 +10,12 @@ class ListTablePage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(

+ 10 - 9
lib/listuser.dart

@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 import 'package:namer_app/datauser.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class ListUserPage extends StatelessWidget {
@@ -10,11 +11,12 @@ class ListUserPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       body: Stack(children: [
         SingleChildScrollView(
           child: Column(
@@ -34,14 +36,13 @@ class ListUserPage extends StatelessWidget {
                     9,
                     (i) => SizedBox(
                           child: ListTile(
+                            visualDensity: VisualDensity(vertical: 4),
                             leading: SizedBox(
                               child: Icon(Icons.person),
                             ),
                             title: Text(users[i]['username']),
                             subtitle: Text(users[i]['user']),
-                            trailing: ButtonUser(
-                              items: users[i],
-                            ),
+                            trailing: ButtonUser(items: users[i]),
                           ),
                         )),
               ),
@@ -63,7 +64,7 @@ class ButtonUser extends StatelessWidget {
 
   @override
   Widget build(BuildContext context) {
-    return Row(
+    return Column(
       mainAxisSize: MainAxisSize.min,
       children: [
         ElevatedButton(

+ 7 - 5
lib/login.dart

@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class LoginPage extends StatelessWidget {
@@ -9,11 +10,12 @@ class LoginPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       backgroundColor: Colors.white,
       body: Column(
         mainAxisAlignment: MainAxisAlignment.spaceEvenly,

+ 30 - 9
lib/main.dart

@@ -1,8 +1,12 @@
 import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
+import 'package:namer_app/addbug.dart';
+import 'package:namer_app/addplatform.dart';
+import 'package:namer_app/editbug.dart';
+import 'package:namer_app/editplatform.dart';
 import 'package:namer_app/edituser.dart';
 import 'package:namer_app/footer.dart';
-import 'package:namer_app/header.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/listbug.dart';
 import 'package:namer_app/listcomment.dart';
 import 'package:namer_app/listmember.dart';
@@ -28,6 +32,10 @@ final _router = GoRouter(
               GoRoute(
                 path: 'comment',
                 builder: (context, state) => ListCommentPage(),
+              ),
+              GoRoute(
+                path: 'editbug',
+                builder: (context, state) => EditBugPage(),
               )
             ])
       ]),
@@ -56,8 +64,20 @@ final _router = GoRouter(
             GoRoute(
               path: 'listmember',
               builder: (context, state) => ListMemberPage(),
+            ),
+            GoRoute(
+              path: 'editplatform',
+              builder: (context, state) => EditPlatformPage(),
             )
-          ])
+          ]),
+      GoRoute(
+        path: 'addbug',
+        builder: (context, state) => AddBugPage(),
+      ),
+      GoRoute(
+        path: 'addplatform',
+        builder: (context, state) => AddPlatformPage(),
+      ),
     ]),
   ],
 );
@@ -80,11 +100,12 @@ class MyHomePage extends StatelessWidget {
   Widget build(BuildContext context) {
     debugPaintSizeEnabled = false;
     return Scaffold(
-        appBar: Header(
-          title: Text('title'),
-          appBar: AppBar(),
-          widgets: <Widget>[Icon(Icons.more_vert)],
-        ),
+        // appBar: Header(
+        //   title: Text('title'),
+        //   appBar: AppBar(),
+        //   widgets: <Widget>[Icon(Icons.more_vert)],
+        // ),
+        appBar: CustomAppbar(),
         body: Container(
           decoration: BoxDecoration(color: Colors.black.withOpacity(0.6)),
           child: Column(
@@ -116,7 +137,7 @@ class MyHomePage extends StatelessWidget {
                 mainAxisAlignment: MainAxisAlignment.center,
                 children: [
                   Padding(
-                    padding: const EdgeInsets.only(right: 10),
+                    padding: const EdgeInsets.symmetric(horizontal: 10),
                     child: ElevatedButton(
                       onPressed: () => context.go('/signup'),
                       style: ElevatedButton.styleFrom(
@@ -129,7 +150,7 @@ class MyHomePage extends StatelessWidget {
                     ),
                   ),
                   Padding(
-                    padding: const EdgeInsets.only(left: 10),
+                    padding: const EdgeInsets.symmetric(horizontal: 10),
                     child: ElevatedButton(
                       onPressed: () => context.go('/login'),
                       style: ElevatedButton.styleFrom(

+ 7 - 5
lib/signup.dart

@@ -1,6 +1,7 @@
 import 'package:flutter/material.dart';
 import 'package:go_router/go_router.dart';
 import 'package:namer_app/footer.dart';
+import 'package:namer_app/head.dart';
 import 'package:namer_app/header.dart';
 
 class SignupPage extends StatelessWidget {
@@ -9,11 +10,12 @@ class SignupPage extends StatelessWidget {
   @override
   Widget build(BuildContext context) {
     return Scaffold(
-      appBar: Header(
-        title: Text('title'),
-        appBar: AppBar(),
-        widgets: <Widget>[Icon(Icons.more_vert)],
-      ),
+      // appBar: Header(
+      //   title: Text('title'),
+      //   appBar: AppBar(),
+      //   widgets: <Widget>[Icon(Icons.more_vert)],
+      // ),
+      appBar: CustomAppbar(),
       backgroundColor: Colors.white,
       body: Column(
         mainAxisAlignment: MainAxisAlignment.spaceEvenly,

+ 8 - 0
pubspec.lock

@@ -57,6 +57,14 @@ packages:
       url: "https://pub.dev"
     source: hosted
     version: "3.2.2"
+  dropdown_button2:
+    dependency: "direct main"
+    description:
+      name: dropdown_button2
+      sha256: b0fe8d49a030315e9eef6c7ac84ca964250155a6224d491c1365061bc974a9e1
+      url: "https://pub.dev"
+    source: hosted
+    version: "2.3.9"
   english_words:
     dependency: "direct main"
     description:

+ 1 - 0
pubspec.yaml

@@ -20,6 +20,7 @@ dependencies:
   timelines: ^0.1.0
   timeline_tile: ^2.0.0
   lint: ^2.3.0  
+  dropdown_button2: ^2.3.9
 
 dev_dependencies:
   flutter_test:

+ 3 - 1
test/widget_test.dart

@@ -5,11 +5,13 @@
 // gestures. You can also use WidgetTester to find child widgets in the widget
 // tree, read text, and verify that the values of widget properties are correct.
 
+// ignore_for_file: depend_on_referenced_packages
+
 import 'package:flutter/material.dart';
 import 'package:flutter_test/flutter_test.dart';
 import 'package:namer_app/main.dart';
 
-import 'package:telneo_lat/main.dart';
+import 'package:bug_listing/main.dart';
 
 void main() {
   testWidgets('Counter increments smoke test', (WidgetTester tester) async {

+ 6 - 1
windows/flutter/CMakeLists.txt

@@ -10,6 +10,11 @@ include(${EPHEMERAL_DIR}/generated_config.cmake)
 # https://github.com/flutter/flutter/issues/57146.
 set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper")
 
+# Set fallback configurations for older versions of the flutter tool.
+if (NOT DEFINED FLUTTER_TARGET_PLATFORM)
+  set(FLUTTER_TARGET_PLATFORM "windows-x64")
+endif()
+
 # === Flutter Library ===
 set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll")
 
@@ -92,7 +97,7 @@ add_custom_command(
   COMMAND ${CMAKE_COMMAND} -E env
     ${FLUTTER_TOOL_ENVIRONMENT}
     "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat"
-      windows-x64 $<CONFIG>
+      ${FLUTTER_TARGET_PLATFORM} $<CONFIG>
   VERBATIM
 )
 add_custom_target(flutter_assemble DEPENDS