Last active
July 21, 2020 13:58
-
-
Save LukeOwlclaw/894b6aa833996f2879bd2f5e3bc519bd to your computer and use it in GitHub Desktop.
FluentUI Dropdown with many items
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<link rel="apple-touch-icon" type="image/png" href="https://static.codepen.io/assets/favicon/apple-touch-icon-5ae1a0698dcc2402e9712f7d01ed509a57814f994c660df9f7a952f3060705ee.png" /> | |
<meta name="apple-mobile-web-app-title" content="CodePen"> | |
<link rel="shortcut icon" type="image/x-icon" href="https://static.codepen.io/assets/favicon/favicon-aec34940fbc1a6e787974dcd360f2c6b63348d4b1f4e06c77743096d55480f33.ico" /> | |
<link rel="mask-icon" type="" href="https://static.codepen.io/assets/favicon/logo-pin-8f3771b1072e3c38bd662872f6b673a722f4b3ca2421637d5596661b4e2132cc.svg" color="#111" /> | |
<title>CodePen - Fabric Example Pen</title> | |
<script src="//unpkg.com/react@16.8.6/umd/react.development.js"></script> | |
<script src="//unpkg.com/react-dom@16.8.6/umd/react-dom.development.js"></script> | |
</head> | |
<body translate="no"> | |
<script src="//unpkg.com/office-ui-fabric-react@7/dist/office-ui-fabric-react.js"></script> | |
<script src="//unpkg.com/@uifabric/react-hooks@7/dist/react-hooks.js"></script> | |
<div id="content"></div> | |
<script id="rendered-js"> | |
"use strict"; | |
var __spreadArrays = (this && this.__spreadArrays) || function () { | |
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; | |
for (var r = Array(s), k = 0, i = 0; i < il; i++) | |
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) | |
r[k] = a[j]; | |
return r; | |
}; | |
var _a = window.Fabric, Dropdown = _a.Dropdown, DropdownMenuItemType = _a.DropdownMenuItemType, IDropdownOption = _a.IDropdownOption, IDropdownStyles = _a.IDropdownStyles, Fabric = _a.Fabric, initializeIcons = _a.initializeIcons; | |
// Initialize icons in case this example uses them | |
initializeIcons(); | |
var dropdownStyles = { dropdown: { width: 300 } }; | |
var DropdownControlledMultiExampleOptions = [ | |
{ key: 'fruitsHeader', text: 'Fruits', itemType: DropdownMenuItemType.Header }, | |
{ key: 'apple', text: 'Apple' }, | |
{ key: 'banana', text: 'Banana' }, | |
{ key: 'orange', text: 'Orange', disabled: true }, | |
{ key: 'grape', text: 'Grape' }, | |
{ key: 'divider_1', text: '-', itemType: DropdownMenuItemType.Divider }, | |
{ key: 'vegetablesHeader', text: 'Vegetables', itemType: DropdownMenuItemType.Header }, | |
{ key: 'broccoli', text: 'Broccoli' }, | |
{ key: 'carrot', text: 'Carrot' }, | |
{ key: 'lettuce', text: 'Lettuce' }, | |
{ key: 'broccoli1', text: 'Broccoli1' }, | |
{ key: 'broccoli2', text: 'Broccoli2' }, | |
{ key: 'broccoli3', text: 'Broccoli3' }, | |
{ key: 'broccoli4', text: 'Broccoli4' }, | |
{ key: 'broccoli5', text: 'Broccoli5' }, | |
{ key: 'broccoli6', text: 'Broccoli6' }, | |
{ key: 'broccoli7', text: 'Broccoli7' }, | |
{ key: 'broccoli8', text: 'Broccoli8' }, | |
{ key: 'broccoli9', text: 'Broccoli9' }, | |
{ key: 'broccoli10', text: 'Broccoli10' }, | |
{ key: 'broccoli11', text: 'Broccoli11' }, | |
{ key: 'broccoli12', text: 'Broccoli12' }, | |
{ key: 'broccoli13', text: 'Broccoli13' }, | |
{ key: 'broccoli14', text: 'Broccoli14' }, | |
{ key: 'broccoli15', text: 'Broccoli15' }, | |
{ key: 'broccoli16', text: 'Broccoli16' }, | |
{ key: 'broccoli17', text: 'Broccoli17' }, | |
{ key: 'broccoli18', text: 'Broccoli18' }, | |
{ key: 'broccoli19', text: 'Broccoli19' }, | |
{ key: 'broccoli20', text: 'Broccoli20' }, | |
{ key: 'broccoli21', text: 'Broccoli21' }, | |
{ key: 'broccoli22', text: 'Broccoli22' }, | |
{ key: 'broccoli23', text: 'Broccoli23' }, | |
{ key: 'broccoli24', text: 'Broccoli24' }, | |
{ key: 'broccoli25', text: 'Broccoli25' }, | |
{ key: 'broccoli26', text: 'Broccoli26' }, | |
{ key: 'broccoli27', text: 'Broccoli27' }, | |
{ key: 'broccoli28', text: 'Broccoli28' }, | |
{ key: 'broccoli29', text: 'Broccoli29' }, | |
{ key: 'broccoli30', text: 'Broccoli30' }, | |
{ key: 'broccoli31', text: 'Broccoli31' }, | |
{ key: 'broccoli32', text: 'Broccoli32' }, | |
{ key: 'broccoli33', text: 'Broccoli33' }, | |
{ key: 'broccoli34', text: 'Broccoli34' }, | |
{ key: 'broccoli35', text: 'Broccoli35' }, | |
{ key: 'broccoli36', text: 'Broccoli36' }, | |
{ key: 'broccoli37', text: 'Broccoli37' }, | |
{ key: 'broccoli38', text: 'Broccoli38' }, | |
{ key: 'broccoli39', text: 'Broccoli39' }, | |
{ key: 'broccoli40', text: 'Broccoli40' }, | |
{ key: 'broccoli41', text: 'Broccoli41' }, | |
{ key: 'broccoli42', text: 'Broccoli42' }, | |
{ key: 'broccoli43', text: 'Broccoli43' }, | |
{ key: 'broccoli44', text: 'Broccoli44' }, | |
{ key: 'broccoli45', text: 'Broccoli45' }, | |
{ key: 'broccoli46', text: 'Broccoli46' }, | |
{ key: 'broccoli47', text: 'Broccoli47' }, | |
{ key: 'broccoli48', text: 'Broccoli48' }, | |
{ key: 'broccoli49', text: 'Broccoli49' }, | |
{ key: 'broccoli50', text: 'Broccoli50' }, | |
{ key: 'broccoli51', text: 'Broccoli51' }, | |
{ key: 'broccoli52', text: 'Broccoli52' }, | |
{ key: 'broccoli53', text: 'Broccoli53' }, | |
{ key: 'broccoli54', text: 'Broccoli54' }, | |
{ key: 'broccoli55', text: 'Broccoli55' }, | |
{ key: 'broccoli56', text: 'Broccoli56' }, | |
{ key: 'broccoli57', text: 'Broccoli57' }, | |
{ key: 'broccoli58', text: 'Broccoli58' }, | |
{ key: 'broccoli59', text: 'Broccoli59' }, | |
{ key: 'broccoli60', text: 'Broccoli60' }, | |
{ key: 'broccoli61', text: 'Broccoli61' }, | |
{ key: 'broccoli62', text: 'Broccoli62' }, | |
{ key: 'broccoli63', text: 'Broccoli63' }, | |
{ key: 'broccoli64', text: 'Broccoli64' }, | |
{ key: 'broccoli65', text: 'Broccoli65' }, | |
{ key: 'broccoli66', text: 'Broccoli66' }, | |
{ key: 'broccoli67', text: 'Broccoli67' }, | |
{ key: 'broccoli68', text: 'Broccoli68' }, | |
{ key: 'broccoli69', text: 'Broccoli69' }, | |
{ key: 'broccoli70', text: 'Broccoli70' }, | |
{ key: 'broccoli71', text: 'Broccoli71' }, | |
{ key: 'broccoli72', text: 'Broccoli72' }, | |
{ key: 'broccoli73', text: 'Broccoli73' }, | |
{ key: 'broccoli74', text: 'Broccoli74' }, | |
{ key: 'broccoli75', text: 'Broccoli75' }, | |
{ key: 'broccoli76', text: 'Broccoli76' }, | |
{ key: 'broccoli77', text: 'Broccoli77' }, | |
{ key: 'broccoli78', text: 'Broccoli78' }, | |
{ key: 'broccoli79', text: 'Broccoli79' }, | |
{ key: 'broccoli80', text: 'Broccoli80' }, | |
{ key: 'broccoli81', text: 'Broccoli81' }, | |
{ key: 'broccoli82', text: 'Broccoli82' }, | |
{ key: 'broccoli83', text: 'Broccoli83' }, | |
{ key: 'broccoli84', text: 'Broccoli84' }, | |
{ key: 'broccoli85', text: 'Broccoli85' }, | |
{ key: 'broccoli86', text: 'Broccoli86' }, | |
{ key: 'broccoli87', text: 'Broccoli87' }, | |
{ key: 'broccoli88', text: 'Broccoli88' }, | |
{ key: 'broccoli89', text: 'Broccoli89' }, | |
{ key: 'broccoli90', text: 'Broccoli90' }, | |
{ key: 'broccoli91', text: 'Broccoli91' }, | |
{ key: 'broccoli92', text: 'Broccoli92' }, | |
{ key: 'broccoli93', text: 'Broccoli93' }, | |
{ key: 'broccoli94', text: 'Broccoli94' }, | |
{ key: 'broccoli95', text: 'Broccoli95' }, | |
{ key: 'broccoli96', text: 'Broccoli96' }, | |
{ key: 'broccoli97', text: 'Broccoli97' }, | |
{ key: 'broccoli98', text: 'Broccoli98' }, | |
{ key: 'broccoli99', text: 'Broccoli99' }, | |
{ key: 'broccoli100', text: 'Broccoli100' }, | |
{ key: 'broccoli101', text: 'Broccoli101' }, | |
{ key: 'broccoli102', text: 'Broccoli102' }, | |
{ key: 'broccoli103', text: 'Broccoli103' }, | |
{ key: 'broccoli104', text: 'Broccoli104' }, | |
{ key: 'broccoli105', text: 'Broccoli105' }, | |
{ key: 'broccoli106', text: 'Broccoli106' }, | |
{ key: 'broccoli107', text: 'Broccoli107' }, | |
{ key: 'broccoli108', text: 'Broccoli108' }, | |
{ key: 'broccoli109', text: 'Broccoli109' }, | |
{ key: 'broccoli110', text: 'Broccoli110' }, | |
{ key: 'broccoli111', text: 'Broccoli111' }, | |
{ key: 'broccoli112', text: 'Broccoli112' }, | |
{ key: 'broccoli113', text: 'Broccoli113' }, | |
{ key: 'broccoli114', text: 'Broccoli114' }, | |
{ key: 'broccoli115', text: 'Broccoli115' }, | |
{ key: 'broccoli116', text: 'Broccoli116' }, | |
{ key: 'broccoli117', text: 'Broccoli117' }, | |
{ key: 'broccoli118', text: 'Broccoli118' }, | |
{ key: 'broccoli119', text: 'Broccoli119' }, | |
{ key: 'broccoli120', text: 'Broccoli120' }, | |
{ key: 'broccoli121', text: 'Broccoli121' }, | |
{ key: 'broccoli122', text: 'Broccoli122' }, | |
{ key: 'broccoli123', text: 'Broccoli123' }, | |
{ key: 'broccoli124', text: 'Broccoli124' }, | |
{ key: 'broccoli125', text: 'Broccoli125' }, | |
{ key: 'broccoli126', text: 'Broccoli126' }, | |
{ key: 'broccoli127', text: 'Broccoli127' }, | |
{ key: 'broccoli128', text: 'Broccoli128' }, | |
{ key: 'broccoli129', text: 'Broccoli129' }, | |
{ key: 'broccoli130', text: 'Broccoli130' }, | |
{ key: 'broccoli131', text: 'Broccoli131' }, | |
{ key: 'broccoli132', text: 'Broccoli132' }, | |
{ key: 'broccoli133', text: 'Broccoli133' }, | |
{ key: 'broccoli134', text: 'Broccoli134' }, | |
{ key: 'broccoli135', text: 'Broccoli135' }, | |
{ key: 'broccoli136', text: 'Broccoli136' }, | |
{ key: 'broccoli137', text: 'Broccoli137' }, | |
{ key: 'broccoli138', text: 'Broccoli138' }, | |
{ key: 'broccoli139', text: 'Broccoli139' }, | |
{ key: 'broccoli140', text: 'Broccoli140' }, | |
{ key: 'broccoli141', text: 'Broccoli141' }, | |
{ key: 'broccoli142', text: 'Broccoli142' }, | |
{ key: 'broccoli143', text: 'Broccoli143' }, | |
{ key: 'broccoli144', text: 'Broccoli144' }, | |
{ key: 'broccoli145', text: 'Broccoli145' }, | |
{ key: 'broccoli146', text: 'Broccoli146' }, | |
{ key: 'broccoli147', text: 'Broccoli147' }, | |
{ key: 'broccoli148', text: 'Broccoli148' }, | |
{ key: 'broccoli149', text: 'Broccoli149' }, | |
{ key: 'broccoli150', text: 'Broccoli150' }, | |
{ key: 'broccoli151', text: 'Broccoli151' }, | |
{ key: 'broccoli152', text: 'Broccoli152' }, | |
{ key: 'broccoli153', text: 'Broccoli153' }, | |
{ key: 'broccoli154', text: 'Broccoli154' }, | |
{ key: 'broccoli155', text: 'Broccoli155' }, | |
{ key: 'broccoli156', text: 'Broccoli156' }, | |
{ key: 'broccoli157', text: 'Broccoli157' }, | |
{ key: 'broccoli158', text: 'Broccoli158' }, | |
{ key: 'broccoli159', text: 'Broccoli159' }, | |
{ key: 'broccoli160', text: 'Broccoli160' }, | |
{ key: 'broccoli161', text: 'Broccoli161' }, | |
{ key: 'broccoli162', text: 'Broccoli162' }, | |
{ key: 'broccoli163', text: 'Broccoli163' }, | |
{ key: 'broccoli164', text: 'Broccoli164' }, | |
{ key: 'broccoli165', text: 'Broccoli165' }, | |
{ key: 'broccoli166', text: 'Broccoli166' }, | |
{ key: 'broccoli167', text: 'Broccoli167' }, | |
{ key: 'broccoli168', text: 'Broccoli168' }, | |
{ key: 'broccoli169', text: 'Broccoli169' }, | |
{ key: 'broccoli170', text: 'Broccoli170' }, | |
{ key: 'broccoli171', text: 'Broccoli171' }, | |
{ key: 'broccoli172', text: 'Broccoli172' }, | |
{ key: 'broccoli173', text: 'Broccoli173' }, | |
{ key: 'broccoli174', text: 'Broccoli174' }, | |
{ key: 'broccoli175', text: 'Broccoli175' }, | |
{ key: 'broccoli176', text: 'Broccoli176' }, | |
{ key: 'broccoli177', text: 'Broccoli177' }, | |
{ key: 'broccoli178', text: 'Broccoli178' }, | |
{ key: 'broccoli179', text: 'Broccoli179' }, | |
{ key: 'broccoli180', text: 'Broccoli180' }, | |
{ key: 'broccoli181', text: 'Broccoli181' }, | |
{ key: 'broccoli182', text: 'Broccoli182' }, | |
{ key: 'broccoli183', text: 'Broccoli183' }, | |
{ key: 'broccoli184', text: 'Broccoli184' }, | |
{ key: 'broccoli185', text: 'Broccoli185' }, | |
{ key: 'broccoli186', text: 'Broccoli186' }, | |
{ key: 'broccoli187', text: 'Broccoli187' }, | |
{ key: 'broccoli188', text: 'Broccoli188' }, | |
{ key: 'broccoli189', text: 'Broccoli189' }, | |
{ key: 'broccoli190', text: 'Broccoli190' }, | |
{ key: 'broccoli191', text: 'Broccoli191' }, | |
{ key: 'broccoli192', text: 'Broccoli192' }, | |
{ key: 'broccoli193', text: 'Broccoli193' }, | |
{ key: 'broccoli194', text: 'Broccoli194' }, | |
{ key: 'broccoli195', text: 'Broccoli195' }, | |
{ key: 'broccoli196', text: 'Broccoli196' }, | |
{ key: 'broccoli197', text: 'Broccoli197' }, | |
{ key: 'broccoli198', text: 'Broccoli198' }, | |
{ key: 'broccoli199', text: 'Broccoli199' }, | |
{ key: 'broccoli200', text: 'Broccoli200' }, | |
{ key: 'broccoli201', text: 'Broccoli201' }, | |
{ key: 'broccoli202', text: 'Broccoli202' }, | |
{ key: 'broccoli203', text: 'Broccoli203' }, | |
{ key: 'broccoli204', text: 'Broccoli204' }, | |
{ key: 'broccoli205', text: 'Broccoli205' }, | |
{ key: 'broccoli206', text: 'Broccoli206' }, | |
{ key: 'broccoli207', text: 'Broccoli207' }, | |
{ key: 'broccoli208', text: 'Broccoli208' }, | |
{ key: 'broccoli209', text: 'Broccoli209' }, | |
{ key: 'broccoli210', text: 'Broccoli210' }, | |
{ key: 'broccoli211', text: 'Broccoli211' }, | |
{ key: 'broccoli212', text: 'Broccoli212' }, | |
{ key: 'broccoli213', text: 'Broccoli213' }, | |
{ key: 'broccoli214', text: 'Broccoli214' }, | |
{ key: 'broccoli215', text: 'Broccoli215' }, | |
{ key: 'broccoli216', text: 'Broccoli216' }, | |
{ key: 'broccoli217', text: 'Broccoli217' }, | |
{ key: 'broccoli218', text: 'Broccoli218' }, | |
{ key: 'broccoli219', text: 'Broccoli219' }, | |
{ key: 'broccoli220', text: 'Broccoli220' }, | |
{ key: 'broccoli221', text: 'Broccoli221' }, | |
{ key: 'broccoli222', text: 'Broccoli222' }, | |
{ key: 'broccoli223', text: 'Broccoli223' }, | |
{ key: 'broccoli224', text: 'Broccoli224' }, | |
{ key: 'broccoli225', text: 'Broccoli225' }, | |
{ key: 'broccoli226', text: 'Broccoli226' }, | |
{ key: 'broccoli227', text: 'Broccoli227' }, | |
{ key: 'broccoli228', text: 'Broccoli228' }, | |
{ key: 'broccoli229', text: 'Broccoli229' }, | |
{ key: 'broccoli230', text: 'Broccoli230' }, | |
{ key: 'broccoli231', text: 'Broccoli231' }, | |
{ key: 'broccoli232', text: 'Broccoli232' }, | |
{ key: 'broccoli233', text: 'Broccoli233' }, | |
{ key: 'broccoli234', text: 'Broccoli234' }, | |
{ key: 'broccoli235', text: 'Broccoli235' }, | |
{ key: 'broccoli236', text: 'Broccoli236' }, | |
{ key: 'broccoli237', text: 'Broccoli237' }, | |
{ key: 'broccoli238', text: 'Broccoli238' }, | |
{ key: 'broccoli239', text: 'Broccoli239' }, | |
{ key: 'broccoli240', text: 'Broccoli240' }, | |
{ key: 'broccoli241', text: 'Broccoli241' }, | |
{ key: 'broccoli242', text: 'Broccoli242' }, | |
{ key: 'broccoli243', text: 'Broccoli243' }, | |
{ key: 'broccoli244', text: 'Broccoli244' }, | |
{ key: 'broccoli245', text: 'Broccoli245' }, | |
{ key: 'broccoli246', text: 'Broccoli246' }, | |
{ key: 'broccoli247', text: 'Broccoli247' }, | |
{ key: 'broccoli248', text: 'Broccoli248' }, | |
{ key: 'broccoli249', text: 'Broccoli249' }, | |
{ key: 'broccoli250', text: 'Broccoli250' }, | |
{ key: 'broccoli251', text: 'Broccoli251' }, | |
{ key: 'broccoli252', text: 'Broccoli252' }, | |
{ key: 'broccoli253', text: 'Broccoli253' }, | |
{ key: 'broccoli254', text: 'Broccoli254' }, | |
{ key: 'broccoli255', text: 'Broccoli255' }, | |
{ key: 'broccoli256', text: 'Broccoli256' }, | |
]; | |
var DropdownControlledMultiExample = function () { | |
var _a = React.useState([]), selectedKeys = _a[0], setSelectedKeys = _a[1]; | |
var onChange = function (event, item) { | |
if (item) { | |
setSelectedKeys(item.selected ? __spreadArrays(selectedKeys, [item.key]) : selectedKeys.filter(function (key) { return key !== item.key; })); | |
} | |
}; | |
return (React.createElement(Dropdown, { placeholder: "Select options", label: "Multi-select controlled example", selectedKeys: selectedKeys, | |
// eslint-disable-next-line react/jsx-no-bind | |
onChange: onChange, multiSelect: true, options: DropdownControlledMultiExampleOptions, styles: dropdownStyles })); | |
}; | |
var DropdownControlledMultiExampleWrapper = function () { return React.createElement(Fabric, null, | |
React.createElement(DropdownControlledMultiExample, null)); }; | |
ReactDOM.render(React.createElement(DropdownControlledMultiExampleWrapper, null), document.getElementById('content')); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment