@knovator/pagecreator
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

Contributors Forks Stargazers Issues MIT License


@knovator/pagecreator

Plug & Play functionality to Build dynamic pages on the fly
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact

About The Project

@knovator/pagecreator is built with intent to build pages that are depend on backend data, and admin can change how page will look like.

(back to top)

Built With

(back to top)

Getting Started

@knovator/pagecreator is designed to be used in ReactJS/NextJS project.

Prerequisites

Create one reactjs/nextjs application if you don't have one,

  • Project
    npx create-react-app my-app
    # or
    npx create-next-app@latest

Installation

  1. Add pagecreator package
    npm install @knovator/pagecreator
    # or
    yarn add @knovator/pagecreator

(back to top)

Usage

Widget

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

Page

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

getData

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',
});

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Knovator Technologies

Project Link: https://github.com/knovator/masters-admin

(back to top)

Package Sidebar

Install

npm i @knovator/pagecreator

Weekly Downloads

10

Version

1.0.0

License

none

Unpacked Size

64.3 kB

Total Files

4

Last publish

Collaborators

  • sagar.modhvaniya
  • chavda-bhavik
  • jenishpaghadar
  • rajnishkatharotiya
  • vimlesai