     private let updateQueue: SerialTaskQueueProtocol
 
     private var nextDidEndScrollingAnimationHandlers: [() -> Void]
+    private var isFirstUpdate: Bool // TODO: To remove
     private weak var collectionView: UICollectionView?
 
     public weak var delegate: ChatMessageCollectionAdapterDelegate?

        self.configuration = configuration
        self.updateQueue = updateQueue

        self.isLoadingContents = true
        self.nextDidEndScrollingAnimationHandlers = []


extension ChatMessageCollectionAdapter: ChatDataSourceDelegateProtocol {
    public func chatDataSourceDidUpdate(_ chatDataSource: ChatDataSourceProtocol) {
        self.enqueueModelUpdate(updateType: .normal)
        self.isFirstUpdate = false
    }

    public func chatDataSourceDidUpdate(_ chatDataSource: ChatDataSourceProtocol, updateType: UpdateType) {
        if !self.configuration.isRegisteringPresentersAutomatically
            && self.isFirstUpdate,
           let collectionView = self.collectionView {
            self.chatItemPresenterFactory.configure(withCollectionView: collectionView)
        }
        
        self.enqueueModelUpdate(updateType: updateType)
    }

