UNPKG

react-message-preview

Version:

A React Component - Browser centered Message box with blur background

137 lines (120 loc) 5.38 kB
# react-message-preview A React Component - Browser centered Message box with blur background. ### On Large Screen <div align="center"> <img src="https://raw.githubusercontent.com/sachinlamba/react-message-preview/master/previewLargeScreen.PNG" /> </div> ### On Small Screen <div align="center"> <img src="https://raw.githubusercontent.com/sachinlamba/react-message-preview/master/previewSmallScreen.PNG" /> </div> ## Examples 1. Here is the first one to get you started: ```jsx import React, { Component } from 'react'; import MessagePreviewer from 'react-message-preview'; class App extends Component { constructor(props){ super(props); this.state = { showMessagePreview: true, count: 1 } this.increment = this.increment.bind(this); this.decrement = this.decrement.bind(this); this.removePreviewFunction = this.removePreviewFunction.bind(this); } removePreviewFunction(){ this.setState({ showMessagePreview: false }) } increment(){ this.setState({ count: this.state.count + 1 }) } decrement(){ if(this.state.count != 0){ this.setState({ count: this.state.count - 1 }) } } render() { let self = this; return ( <div className="App"> { self.state.showMessagePreview && <MessagePreviewer messageTitle={"Counter"} messageText={"Counter : " + self.state.count} resetText="Decrement" saveText="Increment" closePreview={this.removePreviewFunction} saveFunction={self.increment} resetFunction={self.decrement} /> } </div> ); } } export default App; ``` --- 2. Second one for Advanced params(*Only render function re-write*) Here we are overriding * CSS of class "preview-div" styles * Reset/Cancel button hidden *You can override the props depending on table names given below for reference.* ```jsx render() { let self = this; let messageDetails = []; if(self.state.count <= 0){ messageDetails.push(<div>Counter stopped at zero.</div>); } messageDetails.push(<div>{"Counter : " + self.state.count}</div>); return ( <div className="App"> { this.state.showMessagePreview && <MessagePreviewer messageStyle={{top: "15%", color: "green"}} messageTitle={"Counter"} messageText={messageDetails} resetText="Decrement" saveText="Increment" resetFlagHide={true} closePreview={this.removePreviewFunction} saveFunction={self.increment} resetFunction={self.decrement} /> } </div> ); } ``` ## Paramters as Props | PropNames | Type | Use | Default | | ------------- |:--------------------: |:-------------:|:-------------:| | backgroundStyle | Object | css style object to update class="blur-background" | {} | | messageStyle | Object | css style object to update class="preview-div" | {} | | titleStyle | Object | css style object to update class="message-title" | {} | | removePreviewButtonStyle | Object | css style object to update class="cross-button" | {} | | resetButtonStyle | Object | css style object to update class="button-style reset-button" | {} | | saveButtonStyle | Object | css style object to update class="button-style save-button" | {} | | resetFlagHide | Boolean | Show(default)/Hide Cancel Button | false | | closePreview | Function | Functon passed from ur project to Close/Hide the preview | - | | resetFunction | Function | Functon passed from ur project for Cancel/Reset action from preview | ()=>{} | | saveFunction | Function | Functon passed from ur project to Save/Ok Action from preview | ()=>{} | | messageTitle | String | Title for the preview box. | "" | | messageText | String/Array| Message content showing in center of preview box. | Pass your msg here. | | resetText | String | Button Name on bottom left side. | Cancel | | saveText | String | Button Name on bottom Right side. | Ok | *All Props are optional except closePreview function(unless u want my preview to be always on ur screen)* :smirk: *As you can see, we can send messageText as Array also.* [See this to view more on this](https://stackoverflow.com/questions/33381029/react-how-to-pass-html-tags-in-props) # Help Published [Guide](http://jasonwatmore.com/post/2018/04/14/react-npm-how-to-publish-a-react-component-to-npm) :heart_eyes: