Description

Hivemind is a Context Provider and Store component that provides many features. The main idea is to wrap the app with this component, and it will take care of adding listeners to screen size, scrolls, and more. the component also checks if the user is using a web browser on a mobile device or desktop, and applies functions accordingly. For now we only have one default function that we consider useful, smoothscroll-polyfill:

Install

Use in bash CLI:

$ npm install --save react-hivemind

Showcase

Example on CodeSandbox

Website use Example In the website is used to keep track of the width, and decide when to render a Hamburger menu (for mobile or width < 800)

React Plug-Hivemind

Hivemind is a Context Provider and Store component that provides many features.

Instructions

literally, just plug and go. import { HivemindStore } from 'react-hivemind' Wrap your app or any high order component with HivemindStore add any additional functions that you want to be called on init

Features

Access to basic data through the whole app Call functions when app starts ,or whether device is mobile or not.

Props

Props Functionality isMobile callback function that gets called if the browser is opened on mobile isNotMobile callback function that gets called if the browser is not opened on mobile onAppStart callback function that gets called when the app start

Check usage for examples

Usage

For React.js version ^16.8

setup

import React from ' react ' ; import ReactDOM from ' react-dom ' ; import ' ./index.css ' ; import App from ' ./App ' ; import { HivemindStore } from ' react-hivemind ' ; const Root = ( ) => { return ( < HivemindStore isMobile = { ( ) => { console . log ( ' yes it is mobile ' ) ; console . log ( ' scroll-polyfill applied ' ) ; } } isNotMobile = { ( ) => { console . log ( ' nop, this is not mobile ' ) ; } } onAppStart = { ( ) => { console . log ( ' App started ' ) ; } } > < App /> </ HivemindStore > ) ; } ; ReactDOM . render ( < Root /> , document . getElementById ( ' root ' ) ) ;

Usage

import HivemindContext from ' react-hivemind ' const example = ( ) => { const { scrollY , width , height , isMobile } = useContext ( HivemindContext ) return ( < div > < div className = { classes . Example } > < h3 > Screen data : Resize the screen and scroll down to check </ h3 > < p style = { { fontSize : 24 } } > < span className = { classes . Data } > Width : </ span > { width } </ p > < p style = { { fontSize : 24 } } > < span className = { classes . Data } > height : </ span > { height } </ p > < p style = { { fontSize : 24 } } > < span className = { classes . Data } > ScrollY : </ span > { scrollY } </ p > < h3 > Detect if device is mobile </ h3 > < p style = { { fontSize : 24 } } > < span className = { classes . Data } > Is Mobile : </ span > { isMobile ? ' true ' : ' false ' } </ p > < h3 > Applied functions </ h3 > < p style = { { fontSize : 24 } } > < span className = { classes . Data } > Applied functions : </ span > Open the console , and see check the logs of the functions being called accordingly </ p > </ div > </ div > )

License

MIT © jorgebaralt