Add Dialog with Pageview to select new house, and then drop a pin where the house is, then zoom map to that area.

This commit is contained in:
2025-04-20 20:36:13 -07:00
parent 9170fffdf8
commit dd9d1a67ab
19 changed files with 1581 additions and 6 deletions

View File

@@ -0,0 +1,16 @@
import 'package:flutter/material.dart';
Widget buildFirstPage(void Function() nextPage) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
const Text("Let's add a new property"),
const SizedBox(height: 20),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [TextButton(onPressed: nextPage, child: const Text("Next"))],
),
],
);
}

View File

@@ -0,0 +1,22 @@
import 'package:flutter/material.dart';
Widget buildSecondPage(
TextEditingController addressController,
void Function() nextPage,
) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
TextFormField(
controller: addressController,
decoration: const InputDecoration(labelText: 'Property Address'),
),
const SizedBox(height: 20),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [TextButton(onPressed: nextPage, child: const Text("Next"))],
),
],
);
}

View File

@@ -0,0 +1,28 @@
import 'package:flutter/material.dart';
Widget buildSummaryPage(
TextEditingController addressController,
TextEditingController signsController,
String? selectedRadius,
void Function() nextPage,
) {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text("Summary", style: TextStyle(fontWeight: FontWeight.bold)),
const SizedBox(height: 10),
Text("Address: ${addressController.text}"),
Text("Signs: ${signsController.text}"),
Text("Radius: ${selectedRadius ?? 'Not selected'}"),
const SizedBox(height: 20),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TextButton(onPressed: nextPage, child: const Text("Finish")),
],
),
],
);
}

View File

@@ -0,0 +1,26 @@
import 'package:flutter/material.dart';
Widget buildThirdPage(
TextEditingController signsController,
void Function() nextPage,
DropdownButtonFormField<String> radiusField,
) {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
TextFormField(
controller: signsController,
decoration: const InputDecoration(labelText: 'Number of Signs'),
keyboardType: TextInputType.number,
),
const SizedBox(height: 10),
radiusField,
const SizedBox(height: 20),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [TextButton(onPressed: nextPage, child: const Text("Next"))],
),
],
);
}