import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
    static values = {
        formColor: { type: Array, default: [] } // Declares 'items' as an Array value
    }
    static targets = ["template", "container", "plan", "button"]

    add(event) {
        console.log("start")
        event.preventDefault()
        event.stopPropagation()

        const content = this.#updateTemplatePlan()

        this.buttonTarget.insertAdjacentHTML("beforebegin", content)

    }

    remove(event) {
        event.preventDefault();
        const wrapper = event.target.closest(".plan-item");
        if (wrapper.dataset.newRecord === "true") {
            wrapper.remove();
        } else {
            wrapper.style.display = "none";
            const destroyInput = wrapper.querySelector("input[name*='[_destroy]']");
            if (destroyInput) {
                destroyInput.value = "1";
            }
        }
    }

    #updateTemplatePlan() {
        const nextIndex = this.planTargets.length
        console.log(nextIndex)
        const num_of_colors = this.formColorValue.length
        let colorIndex = 0
        let newSecondaryColor = "copper"
        if (nextIndex != 0) {
            colorIndex = nextIndex % num_of_colors
            if (nextIndex % 2 == 1) {
                newSecondaryColor = "bronze"
            }
        }
        const newColor = this.formColorValue[colorIndex]
        return this.templateTarget.innerHTML
                            .replace(/NEW_RECORD/g, nextIndex)
                            .replace(/NEW_PLAN/g, nextIndex + 1)
                            .replace(/NEXT_COLOR/g, newColor)
                            .replace(/NEXT_SECONDARY_COLOR/g, newSecondaryColor)


    }
}