Skip to content

Xavientois/dragula-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dragula-rs

Crates.io GitHub GitHub Workflow Status

Drag and drop so simple it hurts

Wrapper for the Dragula Javascript library.

Usage

Dragula provides the easiest possible API to make drag and drop a breeze in your applications.

use dragula::*;

let doc = web_sys::window().unwrap().document().unwrap();
let element = doc.get_element_by_id("drag-container").unwrap();

let drake = dragula(&[element]);

You can also provide an Options instance to specify behaviour of certain drag-and-drop features.

use dragula::*;
use dragula::options::Direction;
use web_sys::Element;

//--snip--

let options = Options {
    is_container: Box::new(|el| {
        Element::from(el).class_list().contains("drag-container")
    }),
    direction: Direction::Horizontal,
    revert_on_spill: true,
    ..Options::default()
};

let drake = dragula_options(&[element], options);

//--snip--

cargo Features

  • js-sys: On by default. Can be used to toggle dependencies on the js-sys crate. Most of this crate relies solely on wasm-bindgen, so disabling this feature currently just prevents you from getting containers on an existing Drake. The main reason you might want to disable this would be to improve compile times.

About

Rust wasm wrapper for the Dragula js library

Topics

Resources

License

Stars

Watchers

Forks

Languages