ybbond-reason

My old site written in ReasonReact
Log | Files | Refs | README | LICENSE | CC-LICENSE

ContentList.re (1322B)


      1 module Styles = {
      2   open Css;
      3 
      4   let ul =
      5     style([
      6       marginLeft(`em(2.5)),
      7       marginTop(`em(0.8)),
      8       paddingLeft(`px(0)),
      9       listStyle(`none, `inside, `none),
     10     ]);
     11 
     12   let pDefault =
     13     style([
     14       before([
     15         position(`absolute),
     16         marginLeft(`em(-1.5)),
     17         contentRule({j|•|j}),
     18       ]),
     19     ]);
     20 
     21   let pDone =
     22     style([
     23       before([
     24         position(`absolute),
     25         marginLeft(`em(-1.5)),
     26         contentRule({j|⊗|j}),
     27       ]),
     28     ]);
     29 
     30   let pProgress =
     31     style([
     32       before([
     33         position(`absolute),
     34         marginLeft(`em(-1.5)),
     35         contentRule({j|⊙|j}),
     36       ]),
     37     ]);
     38 };
     39 
     40 type listType =
     41   | Default
     42   | Progress
     43   | Done;
     44 type listContent = {
     45   text: ReasonReact.reactElement,
     46   variant: listType,
     47 };
     48 
     49 [@react.component]
     50 let make = (~content: array(listContent)) => {
     51   let contentMapped =
     52     Array.mapi(
     53       (key, item: listContent) => {
     54         let listPointType =
     55           switch (item.variant) {
     56           | Progress => Styles.pProgress
     57           | Done => Styles.pDone
     58           | Default => Styles.pDefault
     59           };
     60         <li key={string_of_int(key)}>
     61           <p className=listPointType> {item.text} </p>
     62         </li>;
     63       },
     64       content,
     65     );
     66 
     67   <ul className=Styles.ul> {ReasonReact.array(contentMapped)} </ul>;
     68 };