lerp static method

Implementation

static SfChatThemeData? lerp(
    SfChatThemeData? a, SfChatThemeData? b, double t) {
  if (a == null && b == null) {
    return null;
  }
  return SfChatThemeData(
    actionButtonForegroundColor: Color.lerp(
        a!.actionButtonForegroundColor, b!.actionButtonForegroundColor, t),
    actionButtonBackgroundColor: Color.lerp(
        a.actionButtonBackgroundColor, b.actionButtonBackgroundColor, t),
    actionButtonFocusColor:
        Color.lerp(a.actionButtonFocusColor, b.actionButtonFocusColor, t),
    actionButtonHoverColor:
        Color.lerp(a.actionButtonHoverColor, b.actionButtonHoverColor, t),
    actionButtonSplashColor:
        Color.lerp(a.actionButtonSplashColor, b.actionButtonSplashColor, t),
    actionButtonDisabledForegroundColor: Color.lerp(
        a.actionButtonDisabledForegroundColor,
        b.actionButtonDisabledForegroundColor,
        t),
    actionButtonDisabledBackgroundColor: Color.lerp(
        a.actionButtonDisabledBackgroundColor,
        b.actionButtonDisabledBackgroundColor,
        t),
    actionButtonElevation:
        lerpDouble(a.actionButtonElevation, b.actionButtonElevation, t) ??
            0.0,
    actionButtonFocusElevation: lerpDouble(
            a.actionButtonFocusElevation, b.actionButtonFocusElevation, t) ??
        0.0,
    actionButtonHoverElevation: lerpDouble(
            a.actionButtonHoverElevation, b.actionButtonHoverElevation, t) ??
        0.0,
    actionButtonDisabledElevation: lerpDouble(a.actionButtonDisabledElevation,
            b.actionButtonDisabledElevation, t) ??
        0.0,
    actionButtonHighlightElevation: lerpDouble(
            a.actionButtonHighlightElevation,
            b.actionButtonHighlightElevation,
            t) ??
        0.0,
    actionButtonShape:
        ShapeBorder.lerp(a.actionButtonShape, b.actionButtonShape, t),
    actionButtonMouseCursor:
        t < 0.5 ? a.actionButtonMouseCursor : b.actionButtonMouseCursor,
    outgoingAvatarBackgroundColor: Color.lerp(
        a.outgoingAvatarBackgroundColor, b.outgoingAvatarBackgroundColor, t),
    incomingAvatarBackgroundColor: Color.lerp(
        a.incomingAvatarBackgroundColor, b.incomingAvatarBackgroundColor, t),
    outgoingBubbleContentBackgroundColor: Color.lerp(
        a.outgoingBubbleContentBackgroundColor,
        b.outgoingBubbleContentBackgroundColor,
        t),
    incomingBubbleContentBackgroundColor: Color.lerp(
        a.incomingBubbleContentBackgroundColor,
        b.incomingBubbleContentBackgroundColor,
        t),
    editorTextStyle: TextStyle.lerp(a.editorTextStyle, b.editorTextStyle, t),
    outgoingContentTextStyle: TextStyle.lerp(
        a.outgoingContentTextStyle, b.outgoingContentTextStyle, t),
    incomingContentTextStyle: TextStyle.lerp(
        a.incomingContentTextStyle, b.incomingContentTextStyle, t),
    outgoingPrimaryHeaderTextStyle: TextStyle.lerp(
        a.outgoingPrimaryHeaderTextStyle,
        b.outgoingPrimaryHeaderTextStyle,
        t),
    incomingPrimaryHeaderTextStyle: TextStyle.lerp(
        a.incomingPrimaryHeaderTextStyle,
        b.incomingPrimaryHeaderTextStyle,
        t),
    outgoingSecondaryHeaderTextStyle: TextStyle.lerp(
        a.outgoingSecondaryHeaderTextStyle,
        b.outgoingSecondaryHeaderTextStyle,
        t),
    incomingSecondaryHeaderTextStyle: TextStyle.lerp(
        a.incomingSecondaryHeaderTextStyle,
        b.incomingSecondaryHeaderTextStyle,
        t),
    suggestionItemTextStyle: WidgetStateProperty.lerp<TextStyle?>(
      a.suggestionItemTextStyle,
      b.suggestionItemTextStyle,
      t,
      TextStyle.lerp,
    ),
    outgoingBubbleContentShape: ShapeBorder.lerp(
        a.outgoingBubbleContentShape, b.outgoingBubbleContentShape, t),
    incomingBubbleContentShape: ShapeBorder.lerp(
        a.incomingBubbleContentShape, b.incomingBubbleContentShape, t),
    suggestionBackgroundColor: Color.lerp(
        a.suggestionBackgroundColor, b.suggestionBackgroundColor, t),
    suggestionBackgroundShape: ShapeBorder.lerp(
        a.suggestionBackgroundShape, b.suggestionBackgroundShape, t),
    suggestionItemBackgroundColor: WidgetStateProperty.lerp<Color?>(
      a.suggestionItemBackgroundColor,
      b.suggestionItemBackgroundColor,
      t,
      Color.lerp,
    ),
    suggestionItemShape: WidgetStateProperty.lerp<ShapeBorder?>(
      a.suggestionItemShape,
      b.suggestionItemShape,
      t,
      ShapeBorder.lerp,
    ),
  );
}