/
index.tsx
31 lines (28 loc) · 959 Bytes
/
index.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import React from "react";
import { cache } from "emotion";
import { CacheProvider as EmotionProvider } from "@emotion/core";
import { Provider as ConnectProvider } from "@frontity/connect";
import { Package } from "@frontity/types";
import { HelmetProvider } from "react-helmet-async";
import { HelmetContext } from "../../types";
type Props = {
store: Package;
helmetContext?: HelmetContext;
};
const App: React.FunctionComponent<Props> = ({ store, helmetContext = {} }) => {
return (
<HelmetProvider context={helmetContext}>
<EmotionProvider value={cache}>
<ConnectProvider value={store}>
{Object.entries(store.roots).map(([namespace, Root]) => (
<Root key={namespace} />
))}
{Object.entries(store.fills).map(([namespace, Fill]) => (
<Fill key={namespace} />
))}
</ConnectProvider>
</EmotionProvider>
</HelmetProvider>
);
};
export default App;