//import goes here

class Home extends StatefulWidget {
  const Home({Key? key}) : super(key: key);
  @override
  State<Home> createState() => _HomeState();
}
class _HomeState extends State<Home> {
  List<Note>? notes;
  bool _isLoading = false;
  bool _isError = false;

  @override
  void initState() {
    _getNoteList();
    super.initState();
  }
  _getNoteList() {
    //getNotelist code goes here
  }

  //add this
  _deleteNote(String id) {
    NoteService().deleteNote(id).then((value) {
      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text('Note Deleted successfully!')),
      );
      Navigator.pushReplacement(context,
          MaterialPageRoute(builder: (BuildContext context) => super.widget));
    }).catchError((_) {
      ScaffoldMessenger.of(context).showSnackBar(
        const SnackBar(content: Text('Error deleting Note!')),
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: AppColor.background,
      appBar: AppBar(
        title: const Text('Notes'),
        backgroundColor: AppColor.primary,
      ),
      body: _isLoading
          ? const Center(
              child: CircularProgressIndicator(
              color: AppColor.primary,
            ))
          : _isError
              ? const Center(
                  child: Text(
                    'Error loading notes',
                    style: TextStyle(
                      color: Colors.red,
                      fontWeight: FontWeight.bold,
                    ),
                  ),
                )
              : ListView.builder(
                  itemCount: notes?.length,
                  itemBuilder: (context, index) {
                    return NoteCard(note: notes![index], onDelete: _deleteNote);
                  },
                ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          Navigator.push(
            context,
            MaterialPageRoute(
              builder: (context) => const ManageNote(
                title: 'Create Note',
                isEdit: false,
              ),
            ),
          );
        },
        backgroundColor: AppColor.primary,
        tooltip: 'Create Note',
        child: const Icon(Icons.add),
      ),
    );
  }
}