date method

Widget date({
  1. dynamic component,
  2. required double parentWidth,
})

Implementation

Widget date({var component, required double parentWidth}) {
  DateController dateController = DateController();

  return SizedBox(
    width: (component["cssClass"] != null && component["cssClass"] != "")
        ? SwitchCase().componentWidthSC(
            component["cssClass"],
            {
              "layout_1by8_col": parentWidth * 0.1,
              "layout_1_col": parentWidth * 0.2,
              "layout_2_col": parentWidth * 0.4,
              "layout_3_col": parentWidth * 0.68,
              "layout_4_col": parentWidth,
            },
            parentWidth * 0.2)
        : parentWidth * 0.2,
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        AltComponent().altComponentLabel(
            component: component,
            label: (component["displayLabel"] != null &&
                    component["displayLabel"] != "")
                ? component["displayLabel"]
                : (component["security"] != null &&
                        component["security"]["fieldLabel"] != null &&
                        component["security"]["fieldLabel"] != "")
                    ? component["security"]["fieldLabel"]
                    : component["name"]),
        Container(
          height: 30,
          decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(componentBorderRadius),
              border: Border.all(color: Palette.componentBorderColor)),
          child: Padding(
            padding: const EdgeInsets.symmetric(vertical: 5, horizontal: 8),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Obx(
                  () => Text(
                    DateFormat("dd-MM-yyyy")
                        .format(dateController.selectedDate.value)
                        .toString(),
                    style: componentTxtStyle,
                  ),
                ),
                GestureDetector(
                    onTap: () {
                      (component["security"] == null)
                          ? dateController.chooseDate()
                          : (component["security"] != null &&
                                  component["security"]["editable"] != null &&
                                  component["security"]["editable"] == true)
                              ? dateController.chooseDate()
                              : null;
                    },
                    child: const Icon(Icons.calendar_today, size: 12)),
              ],
            ),
          ),
        ),
        AltComponent().altComponentInstruction(component: component)
      ],
    ),
  );
}