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.imageProvider == null &&
        model.imageSource == null &&
        model.image == null) {
      throw ArgumentError(
        'Either image or imagePath must be provided for TabType.image',
      );
    }
    return ImageTab(
      imageProvider: model.imageProvider,
      imgSource: model.imageSource,
      image: model.image,
      label: model.label,
      spacing: model.spacing,
      wrapperModel: wrapperModel,
      rotate: rotate,
      rotateTurns: rotateTurns,
      height: model.height,
      width: model.width,
      vertical: model.vertical,
      borderRadius: model.borderRadius,
      fit: model.fit,
    );
  }

  return Tab(text: model.label);
}