Custom Links & Pages
Static CMS exposes a window.CMS
global object that you can use to register external links or links custom pages, via registerAdditionalLink
. The links are displayed at the bottom of the navigation menu in the order they are registered.
React Components Inline
The registerAdditionalLink
requires you to provide a React component. If you have a build process in place for your project, it is possible to integrate with this build process.
However, although possible, it may be cumbersome or even impractical to add a React build phase. For this reason, Static CMS exposes some constructs globally to allow you to create components inline: h
(alias for React.createElement) as well some basic hooks (useState
, useMemo
, useEffect
, useCallback
).
Params
registerAdditionalLink
takes an AdditionalLink
object with the following properties:
Param | Type | Description |
---|---|---|
id | string | Unique identifier for the link |
title | string | Display text for the link |
data | string | React Function Component |
|
options | object | Optional. See Options |
Options
Available options for each additional link are:
Param | Type | Description |
---|---|---|
iconName | string | The name of a custom registered icon to display. See Custom Icons |
Examples
External Links
CMS.registerAdditionalLink({
id: 'example',
title: 'Example.com',
data: 'https://example.com',
options: {
icon: 'page',
},
});
Custom Page
const CustomPage = () => {
return h('div', {}, 'I am a custom page!');
};
CMS.registerAdditionalLink({
id: 'custom-page',
title: 'Custom Page',
data: CustomPage,
options: {
icon: 'page',
},
});