Skip to content

jakeNiemiec/react-floorplanner

Repository files navigation

react-floorplanner

(this is a fork of react-planner by CVDLAB)

react-floorplanner is a React component which can be used to draw model buildings. Drag & drop from a catalog of customizable and ready-to-use objects, you can start from 2D wireframes and land on 3D models. As a developer you can provide your users with new objects by adding them to the catalog.

npm javascript react-version

Demo

Demo

react-floorplanner

Usage

import React from 'react';
import ReactDOM from 'react-dom';
import {Map} from 'immutable';
import {createStore} from 'redux';
import {Provider} from 'react-redux';

import { ExampleCatalog } from 'react-floorplanner';

import {
  Models as PlannerModels,
  reducer as PlannerReducer,
  ReactPlanner,
  Plugins as PlannerPlugins,
} from 'react-floorplanner'; //react-floorplanner

//define state
let AppState = Map({
  'react-floorplanner': new PlannerModels.State()
});

//define reducer
let reducer = (state, action) => {
  state = state || AppState;
  state = state.update('react-floorplanner', plannerState => PlannerReducer(plannerState, action));
  return state;
};

//init store
let store = createStore(reducer, null, window.devToolsExtension ? window.devToolsExtension() : f => f);

let plugins = [
  PlannerPlugins.Keyboard(),
  PlannerPlugins.Autosave('react-floorplanner_v0'),
  PlannerPlugins.ConsoleDebugger(),
];

//render
ReactDOM.render(
  (
    <Provider store={store}>
      <ReactPlanner catalog={MyCatalog} width={800} height={600} plugins={plugins}
                    stateExtractor={state => state.get('react-floorplanner')}
      />
    </Provider>
  ),

  document.getElementById('app')
);

Docs

Cooming soon!

Contributing

Your contributions (issues and pull request) are very appreciated!

Authors

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published