@cloudcannon/react-connector
v2.0.0
Published
A React connector for activating live visual editing in CloudCannon
Downloads
1,777
Readme
CloudCannon React Connector
Using a React based SSG? Want to see give your editors a live visual editing experience? Use the React Connector and connect CloudCannon.
Installation
npm i @cloudcannon/react-connector
Next JS Integration
Update the code in pages/_app.jsx
from:
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />
}
to:
import { CloudCannonConnect } from '@cloudcannon/react-connector'
export default function App({ Component, pageProps }) {
const AppComponent = CloudCannonConnect(Component);
return <AppComponent {...pageProps}/>
}
In CloudCannon will now push through new page props from your editors updates.
CloudCannon options
By default CloudCannon passes through processed markdown as HTML and new files as blobs. Both of these options are configurable
using the valueOptions
parameter. If you have a markdown processor built into your component set keepMarkdownAsHTML
to false, this will prevent any double processing conflicts.
import { CloudCannonConnect } from '@cloudcannon/react-connector'
export default function App({ Component, pageProps }) {
const AppComponent = CloudCannonConnect(Component, {
valueOptions: {
keepMarkdownAsHTML: false,
preferBlobs: true
}
});
return <AppComponent {...pageProps}/>
}
Modifying the props
If your props are modified in the getStaticProps
function you can mirror those same operations. Below is an example of
the processProps
function which is passed the props before it is injected into the new props. This defaults to an identity
function which passes the props directly through.
import { CloudCannonConnect } from '@cloudcannon/react-connector'
export default function App({ Component, pageProps }) {
const AppComponent = CloudCannonConnect(Component, {
processProps: (props) => {
return props;
}
});
return <AppComponent {...pageProps}/>
}