templateView static method

String templateView(
  1. String name
)

Implementation

static String templateView(String name) {
  String filterName = _upperFirst(name);
  String camelName = _camelCase(name);
  return '''
part of 'index.dart';

class ${filterName}Page extends StatelessWidget {
${filterName}Page({super.key});

final ${filterName}Controller ${camelName}Controller = Get.find<${filterName}Controller>();

@override
Widget build(BuildContext context) {
  return CustomScaffold(
    appBar: const CustomAppBar(title: CustomAppBarTranslate()),
    bottomNavigationBar: GetBuilder<${filterName}Controller>(
      id: 'bottomFloatBarScreen',
      builder: (controller) => CustomBottomFloatBar.select(
        context: context,
        isVisible: controller.isSelectedLength != 0,
        isAllSelected: controller.list.length == controller.isSelectedLength,
        onSelectAll: (v) => controller.updateAllSelected(v),
        children: [
          CustomTextButton(
            onPressed: controller.confirm,
            child: Text('confirm'.tr)
          ),
        ],
      ),
    ),
    body: CustomScrollView(
      slivers: [
        const SliverToBoxAdapter(child: CustomSpaceHeightSmall()),
        SliverToBoxAdapter(child: _buildQueryScreen(context)),
        const SliverToBoxAdapter(child: CustomSpaceHeight()),
        SliverToBoxAdapter(child: CustomListTitle(titleText: 'list'.tr)),
        const SliverToBoxAdapter(child: CustomSpaceHeight()),
        _buildListScreen(),
        const SliverSafeArea(
          sliver: SliverToBoxAdapter(child: CustomSpaceHeightSmall())
        ),
      ],
    ),
  );
}

Widget _buildListScreen() {
  return GetBuilder<${filterName}Controller>(
    id: 'listScreen',
    builder: (controller) {
      return controller.list.isNotEmpty
          ? SliverList.builder(
              itemBuilder: (c, index) {
                final item = controller.list[index];
                return CustomSelectCard(
                  index: index,
                  itemCount: controller.list.length,
                  checkboxValue: item.isSelected ?? false,
                  onCheckboxChanged: (v) => controller.updateRowSelected(item),
                  child: CustomListTileFixedWidth(
                    titleText: item.lotId ?? '',
                    trailingText: item.eqpId ?? ''
                  ),
                );
              },
              itemCount: controller.list.length,
            )
          : const SliverToBoxAdapter(child: CustomEmpty());
    },
  );
}

Widget _buildQueryScreen(BuildContext context) {
  return GetBuilder<${filterName}Controller>(
    id: 'queryScreen',
    builder: (controller) {
      return CustomListTileSection(
        children: [
          CustomListTileInput(
            titleText: 'eqpId'.tr,
            controller: controller.inputControllerEqpId,
            autofocus: true,
            textInputAction: TextInputAction.next,
            isRequired: true,
            useCameraScanner: true,
          ),
          CustomListTileInput(
            titleText: 'lotId'.tr,
            controller: controller.inputControllerLotId,
            isRequired: true,
            useCameraScanner: true,
          ),
          CustomDateRangePicker(
            titleText: 'timeRange'.tr,
            initialDateTime: controller.dateRange,
            onConfirm: (v) {
              controller.updateDateRange(v);
            },
          ),
          CustomListTileContainer(
            child: CustomFilledButton(
              onPressed: controller.getList,
              child: Text('query'.tr)
            ),
          )
        ],
      );
    },
  );
}
}
''';
}