FPortalArrowDecoration constructor

FPortalArrowDecoration({
  1. required FPortalArrowStyle style,
  2. required Decoration decoration,
  3. required ValueListenable<FPortalGeometry?> geometry,
  4. FPortalArrowAlignment alignment = .childCenter,
})

Implementation

factory({
  required FPortalArrowStyle style,
  required Decoration decoration,
  required ValueListenable<FPortalGeometry?> geometry,
  FPortalArrowAlignment alignment = .childCenter,
}) {
  if (decoration.image != null) {
    return ._(style, decoration, geometry, alignment);
  }

  if (decoration case BoxDecoration(:final border?) when !border.isUniform) {
    return ._(style, decoration, geometry, alignment);
  }

  if (decoration.border case final OutlinedBorder shape when shape.side.strokeAlign == BorderSide.strokeAlignInside) {
    return _Arrow(shape, style, decoration, geometry, alignment);
  }

  return ._(style, decoration, geometry, alignment);
}