Interface DragModel<M, Id>

    interface DragModel<M, Id> {
        active: Cell<Id | null>;
        at: Vec;
        pointer: Writable<Vec>;
        preview: Read<M>;
        grip(
            handle: AnyShape,
            id: Id,
            seed: () => V,
            onGrab?: () => void,
        ): () => void;
    }

    Type Parameters

    • M
    • Id
    Index

    Methods

    Properties

    Methods

    • Wire a handle: seed + claim on press, commit drop on release.

      Parameters

      • handle: AnyShape
      • id: Id
      • seed: () => V
      • OptionalonGrab: () => void

      Returns () => void

    Properties

    active: Cell<Id | null>

    Which element is being dragged (null when idle).

    at: Vec

    Where the dragged handle sits this frame (float the dragged element here).

    pointer: Writable<Vec>

    The free pointer for the active drag (bound by grip).

    preview: Read<M>

    Previewed model while dragging, else the committed model.