From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../src/components/App.tsx | 45 ++++++++++++++++++ .../src/components/Greeting.tsx | 37 +++++++++++++++ .../src/components/WhoToGreet.tsx | 53 ++++++++++++++++++++++ .../src/index.html | 19 ++++++++ .../src/main.tsx | 7 +++ 5 files changed, 161 insertions(+) create mode 100644 node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/App.tsx create mode 100644 node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/Greeting.tsx create mode 100644 node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/WhoToGreet.tsx create mode 100644 node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/index.html create mode 100644 node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/main.tsx (limited to 'node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src') diff --git a/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/App.tsx b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/App.tsx new file mode 100644 index 000000000..e74cc9538 --- /dev/null +++ b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/App.tsx @@ -0,0 +1,45 @@ +import React from 'react'; +import FBEmitter from "fbemitter"; + +import GreetingStore from '../stores/GreetingStore'; +import GreetingState from '../types/GreetingState'; +import WhoToGreet from './WhoToGreet'; +import Greeting from './Greeting'; + +class App extends React.Component<{}, GreetingState> { + eventSubscription: FBEmitter.EventSubscription; + constructor(props: {}) { + super(props); + this.state = this.getStateFromStores(); + } + private onChange = () => { + this.setState(this.getStateFromStores()); + } + + public componentWillMount() { + this.eventSubscription = GreetingStore.addChangeListener(this.onChange); + } + + public componentWillUnmount() { + this.eventSubscription.remove(); + } + + render() { + const { greetings, newGreeting } = this.state; + return ( +
+

Hello People!

+ + + + { greetings.map((g, index) => ) } +
+ ); + } + + private getStateFromStores() { + return GreetingStore.getState(); + } +} + +export default App; diff --git a/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/Greeting.tsx b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/Greeting.tsx new file mode 100644 index 000000000..7150537c7 --- /dev/null +++ b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/Greeting.tsx @@ -0,0 +1,37 @@ +import React from 'react'; + +import * as GreetingActions from '../actions/GreetingActions'; + +interface Props { + key: number; + targetOfGreeting: string; +} + +class Greeting extends React.Component { + constructor(props: Props) { + super(props); + } + + static propTypes: React.ValidationMap = { + targetOfGreeting: React.PropTypes.string.isRequired + } + + render() { + return ( +

+ Hello { this.props.targetOfGreeting }! + + +

+ ); + } + + _onClick = (_event: React.MouseEvent) => { + GreetingActions.removeGreeting(this.props.targetOfGreeting); + } +} + +export default Greeting; diff --git a/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/WhoToGreet.tsx b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/WhoToGreet.tsx new file mode 100644 index 000000000..9f3deda94 --- /dev/null +++ b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/components/WhoToGreet.tsx @@ -0,0 +1,53 @@ +import React from 'react'; + +import * as GreetingActions from '../actions/GreetingActions'; + +interface Props { + newGreeting: string; +} + +class WhoToGreet extends React.Component { + constructor(props: Props) { + super(props); + } + + static propTypes: React.ValidationMap = { + newGreeting: React.PropTypes.string.isRequired + } + + render() { + return ( +
+
+ + +
+
+ ); + } + + get _preventSubmission() { + return !this.props.newGreeting; + } + + _handleNewGreetingChange = (event: React.FormEvent) => { + const newGreeting = (event.target as HTMLInputElement).value; + GreetingActions.newGreetingChanged(newGreeting); + } + + _onSubmit = (event: React.FormEvent) => { + event.preventDefault(); + + if (!this._preventSubmission) { + GreetingActions.addGreeting(this.props.newGreeting); + } + } +} + +export default WhoToGreet; diff --git a/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/index.html b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/index.html new file mode 100644 index 000000000..a3f53185a --- /dev/null +++ b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/index.html @@ -0,0 +1,19 @@ + + + + + + + + TypeScript, Babel, React, Flux, and Karma + + + + + + +
+ + + + diff --git a/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/main.tsx b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/main.tsx new file mode 100644 index 000000000..7e957bd47 --- /dev/null +++ b/node_modules/ts-loader/examples/webpack2-gulp-react-flux-babel-karma/src/main.tsx @@ -0,0 +1,7 @@ +import 'babel-polyfill'; +import React from 'react'; +import ReactDOM from 'react-dom'; + +import App from './components/App'; + +ReactDOM.render(, document.getElementById('content')); -- cgit v1.2.3