Initial Release: SAVEXSTATE Vault V1 - Cyber Orange Edition
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||
|
||||
class AdminEventScreen extends StatefulWidget {
|
||||
const AdminEventScreen({super.key});
|
||||
@override
|
||||
State<AdminEventScreen> createState() => _AdminEventScreenState();
|
||||
}
|
||||
|
||||
class _AdminEventScreenState extends State<AdminEventScreen> {
|
||||
final _title = TextEditingController();
|
||||
final _venue = TextEditingController();
|
||||
final _city = TextEditingController();
|
||||
final _date = TextEditingController();
|
||||
final _link = TextEditingController();
|
||||
int _minTier = 1;
|
||||
|
||||
Future<void> _save() async {
|
||||
await FirebaseFirestore.instance.collection('events').add({
|
||||
'title': _title.text,
|
||||
'venue': _venue.text,
|
||||
'city': _city.text,
|
||||
'date_string': _date.text,
|
||||
'link': _link.text,
|
||||
'minTier': _minTier,
|
||||
'date': FieldValue.serverTimestamp(), // For sorting
|
||||
});
|
||||
Navigator.pop(context);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(title: const Text("REGISTER_SESSION")),
|
||||
body: SingleChildScrollView(
|
||||
padding: const EdgeInsets.all(24),
|
||||
child: Column(
|
||||
children: [
|
||||
TextField(controller: _title, decoration: const InputDecoration(labelText: "EVENT_NAME")),
|
||||
const SizedBox(height: 10),
|
||||
TextField(controller: _venue, decoration: const InputDecoration(labelText: "VENUE_NAME")),
|
||||
const SizedBox(height: 10),
|
||||
TextField(controller: _city, decoration: const InputDecoration(labelText: "CITY_SECTOR")),
|
||||
const SizedBox(height: 10),
|
||||
TextField(controller: _date, decoration: const InputDecoration(labelText: "DATE (EX: OCT 24)")),
|
||||
const SizedBox(height: 10),
|
||||
TextField(controller: _link, decoration: const InputDecoration(labelText: "TICKET_GATEWAY_URL")),
|
||||
const SizedBox(height: 20),
|
||||
DropdownButton<int>(
|
||||
value: _minTier,
|
||||
isExpanded: true,
|
||||
dropdownColor: Colors.black,
|
||||
items: const [
|
||||
DropdownMenuItem(value: 1, child: Text("LVL_01: PUBLIC")),
|
||||
DropdownMenuItem(value: 2, child: Text("LVL_02: COLLECTORS")),
|
||||
DropdownMenuItem(value: 3, child: Text("LVL_03: INVESTORS")),
|
||||
],
|
||||
onChanged: (v) => setState(() => _minTier = v!),
|
||||
),
|
||||
const SizedBox(height: 40),
|
||||
ElevatedButton(onPressed: _save, child: const Text("[ INITIALIZE_SESSION ]")),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user