aboutsummaryrefslogtreecommitdiff
path: root/node_modules/react/lib/LinkedStateMixin.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/react/lib/LinkedStateMixin.js')
-rw-r--r--node_modules/react/lib/LinkedStateMixin.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/node_modules/react/lib/LinkedStateMixin.js b/node_modules/react/lib/LinkedStateMixin.js
new file mode 100644
index 000000000..895cf7368
--- /dev/null
+++ b/node_modules/react/lib/LinkedStateMixin.js
@@ -0,0 +1,34 @@
+/**
+ * Copyright 2013-present, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ */
+
+'use strict';
+
+var ReactLink = require('./ReactLink');
+var ReactStateSetters = require('./ReactStateSetters');
+
+/**
+ * A simple mixin around ReactLink.forState().
+ * See https://facebook.github.io/react/docs/two-way-binding-helpers.html
+ */
+var LinkedStateMixin = {
+ /**
+ * Create a ReactLink that's linked to part of this component's state. The
+ * ReactLink will have the current value of this.state[key] and will call
+ * setState() when a change is requested.
+ *
+ * @param {string} key state key to update.
+ * @return {ReactLink} ReactLink instance linking to the state.
+ */
+ linkState: function (key) {
+ return new ReactLink(this.state[key], ReactStateSetters.createStateKeySetter(this, key));
+ }
+};
+
+module.exports = LinkedStateMixin; \ No newline at end of file