Where to find toggle class?


#1

Hi all
I would like to use toggle function from Element module and I tried as following:

let handleClick = (_event, _self) => {
  switch (Document.getElementById("doc-page", document)) {
  | Some(ele) => Element.classList.toggle;
  | None => ();
  }; 
};  

I can not figure out where the toggle function is defined. I am searching for like https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_classlist_toggle.
Thanks


#2

Try with the bindings following bs-webapi


#3

Sorry I’ve forgot to mention, that I am using already bs-webapi.


#4

Normally the function toggle is here (https://github.com/reasonml-community/bs-webapi-incubator/blob/master/src/dom/sets/DomTokenListRe.re).


#5

I’ve got it:

let handleClick = (_event, _self) => {
  switch (Document.getElementById("doc-page", document)) {
  | Some(ele) => 
    DomTokenListRe.toggle("sidenav-toggled", Element.classList(ele))
    |> ignore;
  | None => ();
  }; 
};  

Thanks so much.


#6

For clarity you can test that:

let handleClick = (_event, _self) =>
  document
  |> Dom.Document.getElementById("doc-page")
  |> Belt.Option.map(_, ele =>
       ele |> Element.classList |> Dom.DomTokenList.toggle("sidenav-toggled")
     )
  |> ignore;