import Sortable from "sortablejs";
import { Controller } from "@hotwired/stimulus";

export default class extends Controller {
    static values = {
        url: String,
    };

    static targets = ["item"];

    connect() {
        this.sortable = new Sortable(this.element, {
            animation: 150,
            handle: '[data-news--sortable-target="handle"]',
            onEnd: this.reorder.bind(this),
        });
    }

    reorder() {
        const order = this.itemTargets.map((el, index) => ({
            id: el.dataset.id,
            position: index + 1,
        }));

        fetch(this.urlValue, {
            method: "POST",
            headers: {
                "Content-Type": "application/json",
            },
            body: JSON.stringify({ order }),
        });
    }
}
