mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-10-29 22:20:30 +01:00 
			
		
		
		
	Add custom order ability of Select options
This commit is contained in:
		| @@ -1,5 +1,5 @@ | ||||
| /* | ||||
|  * Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/) | ||||
|  * Copyright (C) 2019-2021 CZ.NIC z.s.p.o. (http://www.nic.cz/) | ||||
|  * | ||||
|  * This is free software, licensed under the GNU General Public License v3. | ||||
|  * See /LICENSE for more information. | ||||
| @@ -18,18 +18,23 @@ Select.propTypes = { | ||||
|     value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired, | ||||
|     /** Help text message. */ | ||||
|     helpText: PropTypes.string, | ||||
|     /** Turns on/off alphabetical ordering of the Select options. */ | ||||
|     customOrder: PropTypes.bool, | ||||
| }; | ||||
|  | ||||
| export function Select({ label, choices, helpText, ...props }) { | ||||
| export function Select({ label, choices, helpText, customOrder, ...props }) { | ||||
|     const uid = useUID(); | ||||
|  | ||||
|     const options = Object.keys(choices) | ||||
|         .sort((a, b) => a - b || a.toString().localeCompare(b.toString())) | ||||
|         .map((key) => ( | ||||
|             <option key={key} value={key}> | ||||
|                 {choices[key]} | ||||
|             </option> | ||||
|         )); | ||||
|     const keys = Object.keys(choices); | ||||
|     if (!customOrder) { | ||||
|         keys.sort((a, b) => a - b || a.toString().localeCompare(b.toString())); | ||||
|     } | ||||
|     const options = keys.map((key) => ( | ||||
|         <option key={key} value={key}> | ||||
|             {choices[key]} | ||||
|         </option> | ||||
|     )); | ||||
|  | ||||
|     return ( | ||||
|         <div className="form-group"> | ||||
|             <label htmlFor={uid}>{label}</label> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user