Apply special inputFocus and containerFocus classes only if supplied, otherwise fall back to input and container classes.

This commit is contained in:
Tom Southall
2022-03-04 18:08:02 +00:00
parent 55354f5168
commit 78a2e83662
2 changed files with 9 additions and 4 deletions

View File

@@ -3,7 +3,9 @@ import Turnstone from './lib'
import { fruits, vegetables } from './data' import { fruits, vegetables } from './data'
const styles = { const styles = {
highlightedItem: 'highlightedItem' highlightedItem: 'highlightedItem',
input: 'input',
inputFocus: 'inputFocus'
} }
const listbox1 = { const listbox1 = {

View File

@@ -83,9 +83,12 @@ export default function Container(props) {
const isExpanded = hasFocus && state.itemsLoaded const isExpanded = hasFocus && state.itemsLoaded
const isErrorExpanded = !!props.errorMessage && state.itemsError const isErrorExpanded = !!props.errorMessage && state.itemsError
const containerClassname = hasFocus ? 'containerFocus' : 'container' const containerClassname = hasFocus ? 'containerFocus' : 'container'
const containerStyles = customStyles[containerClassname] || customStyles.container
const defaultContainerStyles = customStyles[containerClassname] const defaultContainerStyles = customStyles[containerClassname]
? undef ? undef
: defaultStyles[containerClassname] : defaultStyles[containerClassname]
const inputClassName = hasFocus ? 'inputFocus' : 'input'
const inputStyles = customStyles[inputClassName] || customStyles.input
// Checks whether or not SWR data is to be treated as immutable // Checks whether or not SWR data is to be treated as immutable
const isImmutable = (() => { const isImmutable = (() => {
@@ -210,7 +213,7 @@ export default function Container(props) {
return ( return (
<React.Fragment> <React.Fragment>
<div <div
className={customStyles[containerClassname]} className={containerStyles}
style={defaultContainerStyles} style={defaultContainerStyles}
role='combobox' role='combobox'
aria-expanded={isExpanded} aria-expanded={isExpanded}
@@ -219,7 +222,7 @@ export default function Container(props) {
<input <input
id={id} id={id}
name={name} name={name}
className={`${customStyles.input || ''} ${customStyles.query || ''}`.trim()} className={`${inputStyles || ''} ${customStyles.query || ''}`.trim()}
style={defaultStyles.query} style={defaultStyles.query}
disabled={disabled} disabled={disabled}
placeholder={placeholder} placeholder={placeholder}
@@ -240,7 +243,7 @@ export default function Container(props) {
{typeahead && ( {typeahead && (
<input <input
className={`${customStyles.input || ''} ${customStyles.typeahead || ''}`.trim()} className={`${inputStyles || ''} ${customStyles.typeahead || ''}`.trim()}
style={defaultStyles.typeahead} style={defaultStyles.typeahead}
disabled={disabled} disabled={disabled}
type='text' type='text'