-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgatsby-browser.js
34 lines (29 loc) · 961 Bytes
/
gatsby-browser.js
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
32
33
34
import React from "react"
import "typeface-source-sans-pro"
import "normalize.css"
import { CartProvider } from "./src/state/cart"
import { MiscProvider } from "./src/state/misc"
import Layout from "./src/components/layout"
// sets prevPath
export const onRouteUpdate = ({ location }) => {
window.locations = window.locations || [document.referrer]
window.locations.push(window.location.href)
const prevPath = window.locations[window.locations.length - 2]
if (location && location.state) {
location.state.prevPath = prevPath
}
}
export const shouldUpdateScroll = ({ routerProps }) => {
const { disableScrollUpdate } = routerProps.location.state || {}
return !disableScrollUpdate
}
export const wrapRootElement = ({ element }) => {
return (
<MiscProvider>
<CartProvider>{element}</CartProvider>
</MiscProvider>
)
}
export const wrapPageElement = ({ element, props }) => {
return <Layout {...props}>{element}</Layout>
}