Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
CollinBeczak committed Feb 2, 2024
1 parent 44e6052 commit dfd064c
Showing 1 changed file with 23 additions and 29 deletions.
52 changes: 23 additions & 29 deletions src/components/AutosuggestTextBox/AutosuggestTextBox.js
Original file line number Diff line number Diff line change
Expand Up @@ -96,26 +96,26 @@ export default class AutosuggestTextBox extends Component {
dropdownItems(getItemProps) {
const isChecked = (result) => {
const isAllOption = result.id === FILTER_SEARCH_ALL

if (this.props.multiselect) {
const isItemSelected = this.props.multiselect.includes(result.id)
const isPreferredTag = preferredResults.some((preferredResult) => preferredResult.id === result.id)

if (!_isEmpty(preferredResults)) {
return isPreferredTag && (this.props.multiselect.length === 0 || isItemSelected)
} else {
return this.props.multiselect.length === 0 ? isAllOption : isItemSelected
}
}

return isAllOption
}

const generateResult = (result, className = "", index) => {
if (this.state.highlightResult === index) {
className += this.props.highlightClassName
}

return !_isEmpty(result) ? (
<a
{...getItemProps({
Expand Down Expand Up @@ -143,67 +143,61 @@ export default class AutosuggestTextBox extends Component {
</a>
) : null
}

let items = []
const searchResults = this.getSearchResults()
const preferredResults = this.getPreferredResults()

// Filter preferredResults based on user input
const filteredPreferredResults = preferredResults.filter((result) =>
result.toLowerCase().includes(this.props.inputValue.toLowerCase())
)

searchResults.sort((a, b) => {
if (a.id === FILTER_SEARCH_ALL) return -1
if (b.id === FILTER_SEARCH_ALL) return 1
if (a.name === this.props.inputValue) return -1
if (b.name === this.props.inputValue) return 1
return isChecked(b) - isChecked(a)
})

if (!_isEmpty(filteredPreferredResults)) {
let className = "mr-font-medium"
items = items.concat(
_map(filteredPreferredResults, (result, index) => {
// Add a border bottom to the last entry if there are more
// search results.
// Add a border bottom to the last entry if there are more search results.
if (index === filteredPreferredResults.length - 1 && filteredPreferredResults.length > 0) {
className += " mr-border-b-2 mr-border-white-50 mr-mb-2 mr-pb-2"
}
return generateResult(result, className, index)
})
)
}

// Now concatenate all other search results, but the index will be offset by the
// preferred results length.
items = items.concat(
_map(searchResults, (result, index) => generateResult(result, "", index + filteredPreferredResults.length))
)


// Now concatenate all other search results, but the index will be offset by the preferred results length.
items = items.concat(_map(searchResults,
(result, index) => generateResult(result, "", index + filteredPreferredResults.length)
))

return items
}

getPreferredResults = () => {
// Filter out any tags that have already been selected.
const preferredResults = _clone(this.props.preferredResults) || []
return _difference(preferredResults, _split(this.props.formData, ','))
}

getSearchResults = () => {
// If we are limiting tags to just preferred we don't need to provide
// any search results
// If we are limiting tags to just preferred we don't need to provide any search results
if (this.props.limitToPreferred) {
return []
}

// Filter out any of our original preferredResults tags so they don't show
// in the list twice.
return _filter(this.props.searchResults,
t => _indexOf(this.props.preferredResults, t.name) === -1)


// Filter out any of our original preferredResults tags so they don't show in the list twice.
return _filter(this.props.searchResults, t => _indexOf(this.props.preferredResults, t.name) === -1)
}

render() {
return (
<Downshift
Expand Down

0 comments on commit dfd064c

Please sign in to comment.