quickAccessAddModal function

Future quickAccessAddModal({
  1. required BuildContext context,
  2. required String name,
  3. required String code,
  4. required String diagnosisID,
  5. required String diagnosisName,
  6. required QuickAccessType type,
})

Implementation

Future<dynamic> quickAccessAddModal({
  required BuildContext context,
  required String name,
  required String code,
  required String diagnosisID,
  required String diagnosisName,
  required QuickAccessType type,
}) {
  final String? patientName = getPatientInfo().patientName;
  final bool isSmallScreen = ResponsiveWidget.isSmallScreen(context);

  return showDialog(
    context: context,
    builder: (BuildContext context) {
      return Dialog(
        shape:
            RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
        child: SizedBox(
          width: MediaQuery.of(context).size.width * 0.4,
          child: Padding(
            padding: isSmallScreen
                ? const EdgeInsets.symmetric(vertical: 10, horizontal: 15)
                : const EdgeInsets.symmetric(vertical: 20, horizontal: 30),
            child: ListView(
              shrinkWrap: true,
              children: <Widget>[
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    smallVerticalSizedBox,
                    Text(
                      'Add ${type.name}',
                      style: isSmallScreen
                          ? Theme.of(context).textTheme.subtitle2
                          : Theme.of(context).textTheme.headline6,
                    ),
                    if (isSmallScreen)
                      smallVerticalSizedBox
                    else
                      mediumVerticalSizedBox,
                    Divider(height: 0.5, color: Colors.grey[500]),
                    if (isSmallScreen)
                      smallVerticalSizedBox
                    else
                      mediumVerticalSizedBox,
                    RichText(
                      text: TextSpan(
                          style: isSmallScreen
                              ? Theme.of(context).textTheme.bodyText1
                              : Theme.of(context).textTheme.subtitle2,
                          children: <TextSpan>[
                            TextSpan(
                                text:
                                    'You are about to ${type.name == 'test' ? 'order' : 'add'} a '),
                            TextSpan(
                                text: name,
                                style: TextThemes.heavySize14Text()),
                            TextSpan(text: ' ${type.name} for '),
                            TextSpan(
                                text: patientName,
                                style: TextThemes.heavySize14Text()),
                            const TextSpan(text: '?'),
                          ]),
                    ),
                    SizedBox(height: isSmallScreen ? 15 : 25.0),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: <Widget>[
                        SILSecondaryButton(
                          buttonKey: AppWidgetKeys.silSecondaryButton,
                          text: silButtonCancel,
                          borderColor: Colors.transparent,
                          onPressed: () =>
                              Navigator.of(context, rootNavigator: true).pop(),
                        ),
                        SILPrimaryButton(
                          buttonKey: AppWidgetKeys.silPrimaryButtonKey,
                          text: confirmBtnText,
                          onPressed: () => saveTestOrDiagnosis(
                            context: context,
                            name: name,
                            code: code,
                            diagnosisID: diagnosisID,
                            diagnosisName: diagnosisName,
                            type: type,
                          ),
                        ),
                      ],
                    ),
                    const SizedBox(width: 0.1)
                  ],
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}