Skip to content

Commit d474fb8

Browse files
author
matdsoupe
committed
adds Dropdown elements
- DropdownButton - SplitButton - Dropdown (Toggle, Menu, Item, Header, Divider)
1 parent 420a624 commit d474fb8

File tree

1 file changed

+135
-1
lines changed

1 file changed

+135
-1
lines changed

src/ReactBootstrap.res

Lines changed: 135 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ module Carousel = {
387387
~keyboard: bool=?,
388388
~nextIcon: reactNode=?,
389389
~nextLabel: string=?,
390-
~onSelect: (~eventKey: int, ~event: option<ReactEvent.Form.t>) => unit,
390+
~onSelect: (~eventKey: int, ~event: option<ReactEvent.Selection.t>) => unit,
391391
~onSlid: (~eventKey: int, ~direction: [#start | #end]) => unit,
392392
~onSlide: (~eventKey: int, ~direction: [#start | #end]) => unit,
393393
~pause: [#hover],
@@ -435,6 +435,140 @@ module CloseButton = {
435435
) => React.element = "CloseButton"
436436
}
437437

438+
module DropdownButton = {
439+
@module("react-bootstrap") @react.component
440+
external make: (
441+
~align: [#start | #end]=?,
442+
~disabled: bool=?,
443+
~href: string=?,
444+
~id: string=?,
445+
~menuRole: string=?,
446+
~menuVariant: [#dark]=?,
447+
~onClick: ReactEvent.Form.t => unit=?,
448+
~renderMenuOnMount: bool=?,
449+
~rootCloseEvent: string=?,
450+
~size: string=?,
451+
~title: string,
452+
~variant: variant=?,
453+
~className: string=?,
454+
~children: React.element,
455+
~bsPrefix: string=?,
456+
) => React.element = "DropdownButton"
457+
}
458+
459+
module SplitButton = {
460+
@module("react-bootstrap") @react.component
461+
external make: (
462+
~align: [#start | #end]=?,
463+
~disabled: bool=?,
464+
~href: string=?,
465+
~id: string,
466+
~menuRole: string=?,
467+
~onClick: ReactEvent.Form.t => unit=?,
468+
~rootCloseEvent: string=?,
469+
~size: size=?,
470+
~target: string=?,
471+
~title: string,
472+
~toggleLabel: string=?,
473+
~_type: string=?,
474+
~variant: variant=?,
475+
~className: string=?,
476+
~children: React.element,
477+
~bsPrefix: string=?,
478+
) => React.element = "SplitButton"
479+
}
480+
481+
module Dropdown = {
482+
type autoClose = Bool(bool) | Side([#outside | #inside])
483+
type drop = [#up | #start | #end | #down]
484+
type focus = Bool(bool) | Keyboard([#keyboard])
485+
486+
type toggleMetadata = {source: [#select | #click | #rootClose | #keydown]}
487+
488+
@module("react-bootstrap") @react.component
489+
external make: (
490+
~align: [#start | #end]=?,
491+
~_as: string=?,
492+
~autoClose: autoClose=?,
493+
~drop: drop=?,
494+
~flip: bool=?,
495+
~focusFirstItemOnShow: focus=?,
496+
~navbar: bool=?,
497+
~onSelect: (~eventKey: string, ~event: ReactEvent.Selection.t) => unit=?,
498+
~onToggle: (~isOpen: bool, ~event: ReactEvent.Synthetic.t, ~metadata: toggleMetadata) => unit=?,
499+
~show: bool=?,
500+
~className: string=?,
501+
~children: React.element,
502+
~bsPrefix: string=?,
503+
) => React.element = "Dropdown"
504+
505+
module Toggle = {
506+
@module("react-bootstrap") @scope("Dropdown") @react.component
507+
external make: (
508+
~_as: string=?,
509+
~childBsPrefix: string=?,
510+
~id: string=?,
511+
~split: bool=?,
512+
~className: string=?,
513+
~children: React.element,
514+
~bsPrefix: string=?,
515+
) => React.element = "Toggle"
516+
}
517+
518+
module Menu = {
519+
@module("react-bootstrap") @scope("Dropdown") @react.component
520+
external make: (
521+
~align: [#start | #end]=?,
522+
~_as: string=?,
523+
~flip: bool=?,
524+
~onSelect: (~eventKey: string, ~event: ReactEvent.Selection.t) => unit=?,
525+
~popperConfig: {.}=?,
526+
~renderOnMount: bool=?,
527+
~rootCloseEvent: [#click | #mousedown]=?,
528+
~show: bool=?,
529+
~variant: variant=?,
530+
~className: string=?,
531+
~children: React.element,
532+
~bsPrefix: string=?,
533+
) => React.element = "Menu"
534+
}
535+
536+
module Item = {
537+
@module("react-bootstrap") @scope("Dropdown") @react.component
538+
external make: (
539+
~active: bool=?,
540+
~_as: string=?,
541+
~disabled: bool=?,
542+
~eventKey: string=?,
543+
~href: string=?,
544+
~onClick: ReactEvent.Mouse.t,
545+
~className: string=?,
546+
~children: React.element,
547+
~bsPrefix: string=?,
548+
) => React.element = "Item"
549+
}
550+
551+
module Header = {
552+
@module("react-bootstrap") @scope("Dropdown") @react.component
553+
external make: (
554+
~_as: string=?,
555+
~className: string=?,
556+
~children: React.element,
557+
~bsPrefix: string,
558+
) => React.element = "Header"
559+
}
560+
561+
module Divider = {
562+
@module("react-bootstrap") @scope("Dropdown") @react.component
563+
external make: (
564+
~_as: string=?,
565+
~className: string=?,
566+
~children: React.element,
567+
~bsPrefix: string,
568+
) => React.element = "Divider"
569+
}
570+
}
571+
438572
module Container = {
439573
@module("react-bootstrap") @react.component
440574
external make: (~children: React.element, ~className: string=?) => React.element = "Container"

0 commit comments

Comments
 (0)