import 'package:flutter/material.dart'; import 'package:rkm/utils/color_palette.dart'; import 'package:rkm/utils/const_variable.dart'; import 'package:rkm/widgets/button_default.dart'; import 'package:rkm/widgets/item_alert_settings.dart'; import 'package:rkm/widgets/switch_with_subtitle.dart'; import 'package:rkm/widgets/text_default.dart'; import 'package:rkm/widgets/title_containers.dart'; import 'dropdown_button_default.dart'; import 'input_search_text.dart'; class AlertDialogDefault { @override alert_with_search(BuildContext context,controller,Widget list,) { double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; return showDialog( context: context, builder: (context){ return AlertDialog( title: InputSearchText( controller: controller, width: width*0.3, hint: 'Buscar...', color: ColorPalette.titleContainer, border: false, ), content: Container( padding: EdgeInsets.symmetric(vertical: 10), width: width*0.8, child: Container( width: width*0.8, height: height*0.8, padding: EdgeInsets.symmetric(horizontal: 10), child: list, ), ), ); } ); } alert(BuildContext context,String title,String subtitle,String textButtom) { double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; return showDialog( context: context, builder: (context){ return AlertDialog( title: TextDefault( text: title, color: ColorPalette.black54, textAlign: TextAlign.center, fontWeigth: FontWeight.bold, ), content: TextDefault( text: subtitle, color: ColorPalette.black54, maxLines: 4, ), actions: [ ButtonDefault( onPressed: ()=>Navigator.pop(context), title: textButtom, width: width*0.85, textColor: ColorPalette.white, borderColor: ColorPalette.appBar, background: ColorPalette.appBar, ) ], ); } ); } alertSelect(BuildContext context) { List list = [ 'Atendimento Domiciliar', 'Atendimento Individual', 'Atendimento Odontológico', 'Avaliação de Elegibilidade', 'Ficha Complementar', 'Marcadores de Consumo', 'Procedimentos', 'Visita domiciliar', ]; List routes = [ '/service_home', '/service_individual', '/service_dental', '/eligibility_assessment', '/complementary_sheet', '/consumption_markers', '/procedures', '/home_visit', ]; double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; return showDialog( context: context, builder: (context){ return AlertDialog( title: TextDefault( text: 'Seleção de Atendimento', color: ColorPalette.black54, textAlign: TextAlign.center, fontWeigth: FontWeight.bold, ), content: Container( width: width*0.8, height: height*0.5, child: ListView.builder( itemCount: list.length, itemBuilder: (context,index){ int rest = index % 2; return ListTile( onTap: ()=>Navigator.pushNamed(context, routes[index]), tileColor: rest==0?ColorPalette.white:ColorPalette.appBar, title: TextDefault( textAlign: TextAlign.center, text: list[index], color: rest==0?ColorPalette.black54:ColorPalette.white, ), ); } ), ), ); } ); } outherProfessionals( BuildContext context,String title,String subtitle,String? selectProfessionals,String? selectCBO,String add ) { double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; bool addProfissionals = false; return showDialog( context: context, builder: (context){ return StatefulBuilder( builder:(context,setState)=> AlertDialog( titlePadding: EdgeInsets.all(0), contentPadding: EdgeInsets.all(0), title: Container( padding: EdgeInsets.all(10), color: ColorPalette.blackButton, child: TextDefault( text: title, color: ColorPalette.white, textAlign: TextAlign.center, fontWeigth: FontWeight.bold, ), ), content: Container( decoration: ConstVariable().backgroundGradient, child: Column( children: [ Card( child: Column( mainAxisSize: MainAxisSize.min, children: [ TitleContainers(title: subtitle), DropDownButtonDefault( onChanged: (value)=>setState((){ selectProfessionals=value; addProfissionals = true; }), select: selectProfessionals, title: 'Profissional', list: [ 'ADMINISTRADOR', 'ALEXANDRE NITTA', 'ALINE SUELEM LEITE', 'ARIANE FAVORATO ROSA', ], width: width ), DropDownButtonDefault( onChanged: (value)=>setState(()=>selectCBO=value), select: selectCBO, title: 'CBO', list: [], width: width ), ButtonDefault( onPressed:addProfissionals?()=>setState((){ add = selectProfessionals!; }):null, title: 'Adicionar', width: width*0.85, textColor: ColorPalette.white, borderColor:addProfissionals?ColorPalette.appBar:ColorPalette.buttonDisable, background: ColorPalette.appBar, disableColor: ColorPalette.buttonDisable, ) ], ), ), Card( child: Column( mainAxisSize: MainAxisSize.min, children: [ TitleContainers(title: 'Profissionais'), add!='' ?Container( padding: EdgeInsets.all(10), child: Row( children: [ TextDefault(text: add,color: ColorPalette.black54,), Spacer(), IconButton( icon: Icon(Icons.delete), onPressed: ()=>setState((){ add=''; addProfissionals = false; }), ) ], ), ) :Container() ], ), ) ], ), ), actionsAlignment: MainAxisAlignment.start, actions: [ ButtonDefault( onPressed: ()=>Navigator.pop(context), title: 'Fechar', width: width*0.2, textColor: ColorPalette.black54, borderColor: ColorPalette.white, background: ColorPalette.white, ) ], ), ); } ); } outherExams( BuildContext context, String title,String subtitle, String? selectProfessionals, String? selectCBO, String add, List examsList, bool requested, bool avaliable ) { double width = MediaQuery.of(context).size.width; double height = MediaQuery.of(context).size.height; bool addProfissionals = false; return showDialog( context: context, builder: (context){ return StatefulBuilder( builder:(context,setState)=> AlertDialog( titlePadding: EdgeInsets.all(0), contentPadding: EdgeInsets.all(0), title: Container( padding: EdgeInsets.all(10), color: ColorPalette.blackButton, child: TextDefault( text: title, color: ColorPalette.white, textAlign: TextAlign.center, fontWeigth: FontWeight.bold, ), ), content: Container( decoration: ConstVariable().backgroundGradient, child: Column( children: [ Card( child: Column( mainAxisSize: MainAxisSize.min, children: [ TitleContainers(title: subtitle), DropDownButtonDefault( onChanged: (value)=>setState((){ selectProfessionals=value; addProfissionals = true; }), select: selectProfessionals, title: 'Exame', list: [ '0201010011 - AMNIOCENTESE', '0201010020 - BIOPSIA / PUNSAO DE TUMOR SUPERFICIAL DA PELE', '0201010046 - BIOPSIA DE ANUS E CANAL ANAL', '0201010062 - BIOSIA DE BEXIGA', ], width: width ), SwitchWithSubtitle( onChanged: (v)=>setState(()=>requested=v), value: requested, width: width*0.8, title: 'Solicitado' ), SwitchWithSubtitle( onChanged: (v)=>setState(()=>avaliable=v), value: avaliable, width: width*0.8, title: 'Avaliado' ), ButtonDefault( onPressed:addProfissionals || examsList.length == 4?()=>setState((){ List list = selectProfessionals!.split(' - '); add = list[0] + '${requested?' - S':''}' + '${avaliable?' - A':''}'+' - ${list[1]}'; if(examsList.length<=3){ examsList.add(add); }else{ addProfissionals = false; } selectProfessionals=null; avaliable = false; requested = false; }):null, title: 'Adicionar', width: width*0.85, textColor: ColorPalette.white, borderColor:addProfissionals?ColorPalette.appBar:ColorPalette.buttonDisable, background: ColorPalette.appBar, disableColor: ColorPalette.buttonDisable, ) ], ), ), Card( child: Column( mainAxisSize: MainAxisSize.min, children: [ TitleContainers(title: 'Exames'), examsList.length!=0 ?Container( width: width*0.8, height: height*0.4, child: ListView.builder( itemCount: examsList.length, itemBuilder: (context,index) { return Container( width: width * 0.8, padding: EdgeInsets.all(10), child: Row( children: [ Container( width: width * 0.6, child: TextDefault(text: examsList[index], color: ColorPalette.black54,) ), Spacer(), IconButton( icon: Icon(Icons.delete), onPressed: () => setState(() { examsList.removeAt(index); }), ) ], ), ); } ), ) :Container() ], ), ) ], ), ), actionsAlignment: MainAxisAlignment.start, actions: [ ButtonDefault( onPressed: ()=>Navigator.pop(context), title: 'Fechar', width: width*0.2, textColor: ColorPalette.black54, borderColor: ColorPalette.white, background: ColorPalette.white, ) ], ), ); } ); } }