Skip to content

Commit

Permalink
combined response/page in returned value from CompareContext
Browse files Browse the repository at this point in the history
  • Loading branch information
olaven committed Jul 5, 2020
1 parent fa37658 commit f18234a
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions src/context/CompareContext.tsx
Expand Up @@ -4,44 +4,43 @@ import { stripStatus } from "../http/methods";
import { getResponses, getPage } from "../http/fetchers";


type PageInformation = {
page: PageModel,
responses: ReseponseModel[]
}

interface ContextInterface {
setSelected: React.Dispatch<SetStateAction<string[]>>,
pages: PageModel[],
responses: ReseponseModel[]
pageInformations: PageInformation[]
}


export const CompareContext = createContext<ContextInterface>({
setSelected: () => { },
pages: [],
responses: []
pageInformations: []
});

export const CompareContextProvider = ({ children }) => {

const [selected, setSelected] = useState<string[]>([]);
const [responses, setResponses] = useState<ReseponseModel[]>()
const [pages, setPages] = useState<PageModel[]>()
const [pageInformations, setPageInformations] = useState<PageInformation[]>([]);

useEffect(() => {
(async () => {

const data = selected.map(id => ({

responses: stripStatus(getResponses(id)),
page: stripStatus(getPage(id))
}));
const pageInformations = await Promise.all(selected.map(async id => ({

const pages = await Promise.all(data.map(({ page }) => page))
const responses = (await Promise.all(data.map(({ responses }) => responses))).flat()
responses: await stripStatus(getResponses(id)),
page: await stripStatus(getPage(id))
})));

setPages(pages);
setResponses(responses);
setPageInformations(pageInformations)
console.log(pageInformations);
})()
}, [selected.length]);


return <CompareContext.Provider value={{ setSelected, pages, responses }}>
return <CompareContext.Provider value={{ setSelected, pageInformations }}>
{children}
</CompareContext.Provider>
};
Expand Down

0 comments on commit f18234a

Please sign in to comment.