create static method

Widget create(
  1. TabItemModel model, {
  2. TabType? tabType,
  3. bool? rotate,
  4. int? rotateTurns,
  5. WrapperModel? wrapperModel,
})

Implementation

static Widget create(
  TabItemModel model, {
  final TabType? tabType,
  final bool? rotate,
  final int? rotateTurns,
  final WrapperModel? wrapperModel,
}) {
  if (model is SimpleTabModel) {
    return SimpleTab(
      icon: model.icon,
      label: model.label,
      spacing: model.spacing,
      height:
          model.height ??
          ((model.tabType ?? tabType) == TabType.iconTopText ? 80 : null),
      iconFirst: (model.tabType ?? tabType) != TabType.textThenIcon,
      vertical: (model.tabType ?? tabType) == TabType.iconTopText,
      wrapperModel: wrapperModel,
      rotate: rotate,
      rotateTurns: rotateTurns,
    );
  } else if (model is LottieTabItemModel) {
    return LottieTab(
      lottieAsset: model.lottieAsset,
      lottieUrl: model.lottieUrl,
      label: model.label,
      wrapperModel: wrapperModel,
      rotate: rotate,
      rotateTurns: rotateTurns,
    );
  } else if (model is ImageTabItemModel) {
    if (model.image == null && model.imagePath == null) {
      throw ArgumentError(
        'Either image or imagePath must be provided for TabType.image',
      );
    }
    return ImageTab(
      imageProvider: model.image,
      imagePath: model.imagePath,
      label: model.label,
      spacing: model.spacing,
      wrapperModel: wrapperModel,
      rotate: rotate,
      rotateTurns: rotateTurns,
    );
  }

  return Tab(text: model.label);
}