Plug & Play functionality to Build dynamic pages on the fly
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
@knovator/pagecreator
is built with intent to build pages that are depend on backend data, and admin can change how page will look like.
@knovator/pagecreator
is designed to be used in ReactJS/NextJS project.
Create one reactjs/nextjs application if you don't have one,
- Project
npx create-react-app my-app # or npx create-next-app@latest
- Add pagecreator package
npm install @knovator/pagecreator # or yarn add @knovator/pagecreator
import { Widget } from '@knovator/pagecreator';
<Widget
imageBaseUrl=''
widgetData={}
onClick={...}
>
Props
-
widgetData
-
imageBaseUrl
- baseUrl to append before image urls
-
formatItem
(optional):(item: ItemData) => JSX.Element
- Customize look of Items
-
onClick
(optional):(item: ItemData) => void;
- OnItem click handler
-
hideTitle
(optional): boolean;- Do not show the title if true
-
settings
(optional): Swiper props- Carousel settings to apply for carousel widget
-
className
(optional): string- Class name for widget
-
formatHeader
(optional):(title: string, data: WidgetData) => string | JSX.Element
- Function to format the widget header
-
formatFooter
(optional):(data: WidgetData) => string | JSX.Element
- Function to format the widget footer
-
formatTabTitle
(optional):(title: string, collectionData: any[], isActive: boolean) => JSX.Element;
- Function to format tab title
-
itemsContainer
(optional):(children: JSX.Element) => JSX.Element;
- Function to wrap items in widget
import { Page } from '@knovator/pagecreator';
<Page
imageBaseUrl=''
pageData={...}
onClick={...}
>
Props
-
title
(optional)- Title to show on page
-
imageBaseUrl
- baseUrl to start prefix image urls
-
pageData
-
formatItem
(optional):(CODE: string, item: ItemData) => JSX.Element;
- Customize look of Items
-
onClick
(optional):(CODE: string, item: ItemData) => JSX.Element;
- On Item click handler
-
hideWidgetTitles
(optional): boolean- Flag to hide widget titles
-
formatWidget
(optional):(item: WidgetData, index: number) => JSX.Element;
- Function to format individual widget
It's possible to fetch data by yourself and pass them to Widget
or Page
components, but if you need easy solution you can use getData
function.
const pageData = await getData({
url: '...',
code: 'HOMEPAGE',
});
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE.txt
for more information.
Knovator Technologies
- Twitter @knovator
- Web https://knovator.com/
Project Link: https://github.com/knovator/masters-admin