import 'dart:io'; import 'package:car_provider_app/api/client/profile_api_client.dart'; import 'package:car_provider_app/classes/app_state.dart'; import 'package:car_provider_app/models/profile/document.dart'; import 'package:car_provider_app/widgets/txt_field.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; import 'package:car_provider_app/extensions/int_extensions.dart'; class DefineLicensePage extends StatefulWidget { @override State createState() => _DefineLicensePageState(); } class _DefineLicensePageState extends State { Document? document; @override void initState() { // TODO: implement initState super.initState(); getDocuments(); } getDocuments() async { document = await ProfileApiClent().getServiceProviderDocument(AppState().getUser.data!.userInfo!.providerId ?? 0); setState(() {}); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Define Licenses"), ), body: Container( width: double.infinity, height: double.infinity, child: showWidget(), ), ); } Widget showWidget() { if (document != null) { return document!.data!.length == 0 ? Text("Something went wrong") : ListView.separated( itemBuilder: (context, index) { return Row( children: [ Flexible( child: TxtField( hint: "Select Attachment", value: document?.data![index].documentUrl ?? "", isNeedClickAll: true, maxLines: 2, ), ), IconButton( onPressed: () { selectFile(index); }, icon: Icon(Icons.insert_link_rounded), ) ], ); }, separatorBuilder: (context, index) { return 12.height; }, padding: EdgeInsets.all(12), itemCount: document!.data!.length, ); } else { return Center( child: CircularProgressIndicator(), ); } } selectFile(int index) async { FilePickerResult? result = await FilePicker.platform.pickFiles(type: FileType.custom, allowedExtensions: ['png', 'pdf', 'jpeg']); if (result != null) { File file = File(result.files.single.path ?? ""); setState(() { document!.data![index].documentUrl = result.files.single.path ?? ""; }); } else { // User canceled the picker } } }