/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

import IGListKit
import IGListSwiftKit

protocol RemoveSectionControllerDelegate: AnyObject {
    func removeSectionControllerWantsRemoved(_ sectionController: RemoveSectionController)
}

final class RemoveSectionController: ListSectionController, RemoveCellDelegate {

    weak var delegate: RemoveSectionControllerDelegate?
    private var number: Int?

    override init() {
        super.init()
        inset = UIEdgeInsets(top: 0, left: 0, bottom: 10, right: 0)
    }

    override func sizeForItem(at index: Int) -> CGSize {
        return CGSize(width: collectionContext!.containerSize.width, height: 55)
    }

    override func cellForItem(at index: Int) -> UICollectionViewCell {
        let cell: RemoveCell = collectionContext.dequeueReusableCell(for: self, at: index)
        cell.text = "Cell: \((number ?? 0) + 1)"
        cell.delegate = self
        return cell
    }

    override func didUpdate(to object: Any) {
        number = object as? Int
    }

    // MARK: RemoveCellDelegate

    func removeCellDidTapButton(_ cell: RemoveCell) {
        delegate?.removeSectionControllerWantsRemoved(self)
    }

}
