sheet_view_page.dart 1,47 ko
Newer Older
import 'package:flutter/material.dart';
import 'google_sheets_api.dart';

class SheetViewPage extends StatefulWidget {
  const SheetViewPage({super.key});

  @override
  State<SheetViewPage> createState() => _SheetViewPageState();
}

class _SheetViewPageState extends State<SheetViewPage> {
  final GoogleSheetsApi _api = GoogleSheetsApi();
  List<List<dynamic>> _rows = [];
  bool _loading = false;

  @override
  void initState() {
    super.initState();
    _load();
  }

  Future<void> _load() async {
    setState(() => _loading = true);
    final data = await _api.readData();
    setState(() {
      _rows = data ?? [];
      _loading = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Données Google Sheet'),
        actions: [
          IconButton(
            icon: const Icon(Icons.refresh),
            onPressed: _load,
          )
        ],
      ),
      body: _loading
          ? const Center(child: CircularProgressIndicator())
          : _rows.isEmpty
              ? const Center(child: Text('Aucune donnée trouvée'))
              : ListView.builder(
                  itemCount: _rows.length,
                  itemBuilder: (context, index) {
                    final row = _rows[index];
                    return ListTile(
                      title: Text(row.map((e) => e?.toString() ?? '').join(' | ')),
                    );
                  },
                ),
    );
  }
}