WoofnWalk / lib / widgets / editProfile.dart
editProfile.dart
Raw

import 'dart:io';
import 'package:flutter/services.dart';
import 'package:path/path.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart';
import 'package:woofnwalk/widgets/profileWidget.dart';
import 'package:woofnwalk/widgets/textFieldWidget.dart';

import '../model/user.dart';
import '../model/userPreferences.dart';
import 'package:woofnwalk/widgets/nav_drawer.dart';

class EditProfile extends StatefulWidget{
  @override
  _EditProfileState createState() => _EditProfileState();
}

class _EditProfileState extends State<EditProfile>{
  User user = UserPreferences.myUser;
  //final imagePicker = ImagePicker();
  late String image = 'images/dogProfile.png';
  //File? _image = 'images/dogProfile.png' as File?;

  Future getImageWithCamera() async {
    //PickedFile? pickedFile =
    final pickedFile = await ImagePicker.platform.getImage(source: ImageSource.camera);
    if (pickedFile == null) {
      return null;
    }
    final File file = File(pickedFile.path);
    final Directory directory = await getApplicationDocumentsDirectory();
    final path = directory.path;
    final String fileName = basename(pickedFile.path);
    File newImage = await file.copy('$path/$fileName');
    setState(() {
      //_image = newImage;
      //_image = File(newImage.path);
    });
  }


  @override
  Widget build(BuildContext context) {
    return Scaffold(
        drawer: NavDrawer(),
        appBar: AppBar(
            title: const Text('Profile'),
            centerTitle: true,
        ),
        body: ListView(
          padding: EdgeInsets.symmetric(horizontal: 32),
          physics: BouncingScrollPhysics(),
          children: [
            Center(
              child: Stack(
                children:[
                  ClipOval(
                    child:Material(
                      color: Colors.transparent,
                      child: GestureDetector(
                        child: Image.asset(image,
                          fit: BoxFit.cover,
                          width: 128,
                          height: 128,
                        ),
                        onTap: () {
                          getImageWithCamera();
                          image = "images/cameraPicture.png";
                        },
                      ),
                    ),
                  ),
                  Positioned(
                    bottom: 0,
                    right: 4,
                    child: Icon(
                      Icons.add_a_photo,
                      color: Theme.of(context).colorScheme.primary,
                        //color: Colors.white,
                      size: 20,
                    ),
                  ),
                ]
              )
            ),

            // ProfileWidget(
            //     imagePath: user.imagePath,
            //     isEdit: true,
            //     onClicked: () async {}
            // ),

            const SizedBox(height: 24),
            TextFieldWidget(
              label: 'First Name',
              text: user.firstName,
              onChanged: (firstName) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: 'Last Name',
                text: user.lastName,
                onChanged: (lastName) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: "Dog's Name",
                text: user.dogName,
                onChanged: (dogName) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: 'Address Location',
                text: user.address,
                onChanged: (address) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: "Dog's Trait 1",
                text: user.hasTrait3,
                onChanged: (hasTrait1) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: "Dog's Trait 2",
                text: user.hasTrait2,
                onChanged: (hasTrait2) {}
            ),

            const SizedBox(height: 24),
            TextFieldWidget(
                label: "Dog's Trait 3",
                text: user.hasTrait3,
                onChanged: (hasTrait3) {}
            ),
          ],
        )
    );
  }
}