UNPKG

@lyra/form-builder

Version:
46 lines (42 loc) 1.38 kB
import PropTypes from 'prop-types' import React from 'react' import styles from './styles/Header.css' function goto(schema, type) { document.location.href = `/${[schema, type].filter(Boolean).join('/')}` } export default function Header(props) { const {schemaNames, typeNames, selectedTypeName, selectedSchemaName} = props return ( <header className={styles.header}> Schema:{' '} <select value={selectedSchemaName} onChange={e => goto(e.target.value)}> {!selectedSchemaName && <option>Select schema…</option>} {schemaNames.map(schemaName => ( <option key={schemaName} value={schemaName}> {schemaName} </option> ))} </select>{' '} {selectedSchemaName && ( <span> Type:{' '} <select value={selectedTypeName} onChange={e => goto(selectedSchemaName, e.currentTarget.value)} > {!selectedTypeName && <option>Select type…</option>} {typeNames.map(typeName => ( <option key={typeName}>{typeName}</option> ))} </select> </span> )} </header> ) } Header.propTypes = { schemaNames: PropTypes.arrayOf(PropTypes.string), typeNames: PropTypes.arrayOf(PropTypes.string), selectedTypeName: PropTypes.string, selectedSchemaName: PropTypes.string }