Assume promises resolve to an array of results rather than an object with a data property

This commit is contained in:
Tom Southall
2022-03-02 14:06:27 +00:00
parent aaeeaccafc
commit 6287c16caa
3 changed files with 8 additions and 5 deletions

View File

@@ -1,6 +1,8 @@
import { useCallback } from 'react'
import { useLocalStorage } from 'react-use'
// TODO: Do we need to pass in Container? Plugins could just act upon props.
const recentSearchesPlugin = (Container, containerProps = {}, pluginProps = {}) => {
const {
ratio = 1,

View File

@@ -87,8 +87,9 @@ export const fetcher = (query, listbox, defaultListbox, minQueryLength, maxItems
const promises = listboxProp.map((group) => {
if (typeof group.data === 'function') {
return group.data(query)
} else {
return Promise.resolve({ data: filterSuppliedData(group, query) })
}
else {
return Promise.resolve(filterSuppliedData(group, query))
}
})
@@ -96,7 +97,7 @@ export const fetcher = (query, listbox, defaultListbox, minQueryLength, maxItems
groups = groups.reduce((prevGroups, group, groupIndex) => {
return [
...prevGroups,
group.data.map((item) => ({
group.map((item) => ({
value: item,
text: itemText(item, listboxProp[groupIndex].displayField),
groupIndex,

View File

@@ -15,14 +15,14 @@ import { fruits, vegetables, books } from '../../../data'
const server = setupServer(
rest.get('http://mock-api-site.com/api/books', (req, res, ctx) => {
return res(
ctx.json({data: books})
ctx.json(books)
)
}),
rest.get('http://mock-api-site.com/api/fruits', (req, res, ctx) => {
const q = req.url.searchParams.get('q')
return res(
ctx.json({data: fruits.filter(fruit => fruit.toLowerCase().startsWith(q.toLowerCase()))})
ctx.json(fruits.filter(fruit => fruit.toLowerCase().startsWith(q.toLowerCase())))
)
})
)