selecaoDePeriodoMensal method

Widget selecaoDePeriodoMensal({
  1. required BuildContext context,
  2. required FiltrosWidgetModel filtrosDados,
  3. required FiltroController controller,
  4. required int index,
})

Implementation

Widget selecaoDePeriodoMensal({
  required BuildContext context,
  required FiltrosWidgetModel filtrosDados,
  required FiltroController controller,
  required int index,
}) {
  return Card(
    child: ListTile(
      title: tituloCards(titulo: filtrosDados.titulo.toUpperCase(), context: context),
      subtitle: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        mainAxisAlignment: MainAxisAlignment.start,
        children: [
          Visibility(
            visible: filtrosDados.subtitulo.isNotEmpty,
            child: Container(
              margin: const EdgeInsets.only(top: 5, bottom: 5),
              alignment: Alignment.topLeft,
              child: Text(
                filtrosDados.subtitulo,
                style: const TextStyle(
                  fontSize: 11.0,
                ),
              ),
            ),
          ),
          Padding(
            padding: const EdgeInsets.only(top: 10, bottom: 10),
            child: Observer(builder: (_) {
              return FutureBuilder(
                future: controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index) == -1 ?
                controller.funcaoBuscarDadosDeCadaFiltro(
                  valor: controller.listaFiltrosParaConstruirTela[index].filtrosWidgetModel,
                  isBuscarDropDown: true,
                  index: index,
                  isDataMensal: true
                ).then(
                  (value) {
                    controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown = controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].listaFiltros.first;
                  },
                ) : null,
                builder: (context, snapshot) {
                  return DropdownButton<FiltrosModel>(
                    value: controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].valorSelecionadoParaDropDown,
                    isExpanded: true,
                    isDense: true,
                    onChanged: (value) {
                      controller.adicionarItensDropDown(index: index, valorSelecionado: value!);
                    },
                    hint: null,
                    items: controller.listaFiltrosCarregados[controller.listaFiltrosCarregados.indexWhere((element) => element.indexFiltros == index)].listaFiltros.map((item) {
                      return DropdownMenuItem<FiltrosModel>(
                        value: item,
                        child: Text(
                          item.titulo,
                        ),
                      );
                    }).toList(),
                  );
                }
              );
            }),
          ),
        ],
      ),
    ),
  );
}