File tree Expand file tree Collapse file tree 8 files changed +163
-0
lines changed
Expand file tree Collapse file tree 8 files changed +163
-0
lines changed Original file line number Diff line number Diff line change 1+ {
2+ "plugins" : [
3+ " transform-es2015-modules-commonjs" ,
4+ " transform-class-properties" ,
5+ " transform-es2015-spread" ,
6+ " transform-es2015-classes" ,
7+ " transform-react-constant-elements" ,
8+ " transform-react-inline-elements"
9+ ]
10+ }
Original file line number Diff line number Diff line change 1+ node_modules
2+ build
3+ log
4+ * .log
Original file line number Diff line number Diff line change 1+ node_modules
2+ test
3+ lib
4+ .babelrc
Original file line number Diff line number Diff line change 1+ # socket.io-react
2+ A High-Order component to connect React and Socket.io easily.
3+
4+ ## API
5+ ``` javascript
6+ import {
7+ SocketProvider ,
8+ socketConnect ,
9+ } from ' socket.io-react' ;
10+ ```
11+
12+ ### SocketProvider(socket?)
13+ ``` javascript
14+ import { SocketProvider } from ' socket.io-react' ;
15+ import io from ' socket.io-client' ;
16+
17+ import App from ' ./containers/App' ;
18+
19+ const socket = io .connect (process .env .SOCKET_URL );
20+ socket .on (' message' , msg => console .log (msg));
21+
22+ const DOMNode = document .getElementById (' renderTarget' );
23+
24+ render (
25+ < SocketProvider socket= {socket}>
26+ < App / >
27+ < / SocketProvider> ,
28+ DOMNode
29+ );
30+ ```
31+ * ` socket ` property is ` false ` by default.
32+
33+ ### socketConnect(Target)
34+ ``` javascript
35+ import { socketConnect } from ' socket.io-react' ;
36+
37+ function App (props ) {
38+ function sendMessage () {
39+ props .socket .emit (' message' , ' Hello world!' );
40+ }
41+
42+ return (
43+ < button onClick= {sendMessage}>
44+ Send!
45+ < / button>
46+ );
47+ }
48+
49+ export default socketConnect (App);
50+ ```
51+ * ` socketConnect ` can be used as a decorator (using [ ** babel-plugin-transform-decorators-legacy** ] ( https://github.com/loganfsmyth/babel-plugin-transform-decorators-legacy ) )
Original file line number Diff line number Diff line change 1+ import React , { Component , PropTypes } from 'react' ;
2+
3+ class SocketProvider extends Component {
4+ static propTypes = {
5+ socket : PropTypes . oneOfType ( [
6+ PropTypes . bool , PropTypes . object
7+ ] ) ,
8+ } ;
9+
10+ static defaultProps = {
11+ socket : false ,
12+ } ;
13+
14+ static childContextTypes = {
15+ socket : PropTypes . oneOfType ( [
16+ PropTypes . bool , PropTypes . object
17+ ] ) ,
18+ } ;
19+
20+ getChildContext ( ) {
21+ return {
22+ socket : this . props . socket ,
23+ } ;
24+ }
25+
26+ render ( ) {
27+ return this . props . children ;
28+ }
29+ }
30+
31+ export default SocketProvider ;
Original file line number Diff line number Diff line change 1+ import SocketProvider from './SocketProvider.js' ;
2+ import socketConnect from './socket-connect.js' ;
3+
4+ export default {
5+ SocketProvider,
6+ socketConnect,
7+ } ;
Original file line number Diff line number Diff line change 1+ import React , { createFactory , PropTypes } from 'react' ;
2+
3+ function socketConnect ( Target ) {
4+ function SocketConnect ( props , context ) {
5+ props . socket = context . socket ;
6+
7+ return createFactory ( Target ) ( props ) ;
8+ }
9+
10+ SocketConnect . contextTypes = {
11+ socket : PropTypes . oneOfType ( [
12+ PropTypes . bool , PropTypes . object
13+ ] ) ,
14+ }
15+
16+ return SocketConnect ;
17+ }
18+
19+ export default socketConnect ;
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " socket.io-react" ,
3+ "version" : " 1.0.0" ,
4+ "description" : " A High-Order Component to connect React and Socket.io" ,
5+ "main" : " build/index.js" ,
6+ "scripts" : {
7+ "build" : " babel lib --out-dir build"
8+ },
9+ "repository" : {
10+ "type" : " git" ,
11+ "url" : " git+https://github.com/sergiodxa/socket.io-react.git"
12+ },
13+ "keywords" : [
14+ " react" ,
15+ " socket.io" ,
16+ " websocket"
17+ ],
18+ "author" :
" Sergio Daniel Xalambrí <[email protected] > (http://sergio.xalambri.com.ar/)" ,
19+ "license" : " MIT" ,
20+ "bugs" : {
21+ "url" : " https://github.com/sergiodxa/socket.io-react/issues"
22+ },
23+ "homepage" : " https://github.com/sergiodxa/socket.io-react#readme" ,
24+ "devDependencies" : {
25+ "babel" : " 6.5.2" ,
26+ "babel-cli" : " 6.6.5" ,
27+ "babel-plugin-transform-class-properties" : " 6.6.0" ,
28+ "babel-plugin-transform-es2015-classes" : " 6.6.5" ,
29+ "babel-plugin-transform-es2015-modules-commonjs" : " 6.7.0" ,
30+ "babel-plugin-transform-es2015-spread" : " 6.6.5" ,
31+ "babel-plugin-transform-react-constant-elements" : " 6.5.0" ,
32+ "babel-plugin-transform-react-inline-elements" : " 6.6.5"
33+ },
34+ "peerDependencies" : {
35+ "socket.io-client" : " ^1.4.5"
36+ }
37+ }
You can’t perform that action at this time.
0 commit comments