@lyra/form-builder
Version:
Lyra form builder
46 lines (42 loc) • 1.38 kB
JavaScript
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
}