             return label
         }
 
+        static var activityIndicator: UIActivityIndicatorView {
+            let view = UIActivityIndicatorView(activityIndicatorStyle: .gray)
+            view.hidesWhenStopped = true
+            return view
+        }
+
     }
 
 }

        label.snp.makeConstraints {
            $0.edges.equalTo(UIEdgeInsets(top: 8, left: 8, bottom: 8, right: 8))
        }
    }

    private var bubbleViewLeftConstraint: Constraint!
    private var bubbleViewRightConstraint: Constraint!

}


            case .some(.left):
                bubbleViewRightConstraint.deactivate()
                bubbleViewLeftConstraint.activate()
                activityIndicatorRightConstraint.deactivate()
                activityIndicatorLeftConstraint.activate()
            case .some(.right):
                bubbleViewLeftConstraint.deactivate()
                bubbleViewRightConstraint.activate()
                activityIndicatorLeftConstraint.deactivate()
                activityIndicatorRightConstraint.activate()
            case .none:
                bubbleViewLeftConstraint.deactivate()
                bubbleViewRightConstraint.deactivate()
                activityIndicatorLeftConstraint.deactivate()
                activityIndicatorRightConstraint.deactivate()
            }
        }
    }
