mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
react app
This commit is contained in:
108
react-app/node_modules/react/lib/ReactOwner.js
generated
vendored
Normal file
108
react-app/node_modules/react/lib/ReactOwner.js
generated
vendored
Normal file
@@ -0,0 +1,108 @@
|
||||
/**
|
||||
* Copyright 2013-2015, 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.
|
||||
*
|
||||
* @providesModule ReactOwner
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var invariant = require("./invariant");
|
||||
|
||||
/**
|
||||
* ReactOwners are capable of storing references to owned components.
|
||||
*
|
||||
* All components are capable of //being// referenced by owner components, but
|
||||
* only ReactOwner components are capable of //referencing// owned components.
|
||||
* The named reference is known as a "ref".
|
||||
*
|
||||
* Refs are available when mounted and updated during reconciliation.
|
||||
*
|
||||
* var MyComponent = React.createClass({
|
||||
* render: function() {
|
||||
* return (
|
||||
* <div onClick={this.handleClick}>
|
||||
* <CustomComponent ref="custom" />
|
||||
* </div>
|
||||
* );
|
||||
* },
|
||||
* handleClick: function() {
|
||||
* this.refs.custom.handleClick();
|
||||
* },
|
||||
* componentDidMount: function() {
|
||||
* this.refs.custom.initialize();
|
||||
* }
|
||||
* });
|
||||
*
|
||||
* Refs should rarely be used. When refs are used, they should only be done to
|
||||
* control data that is not handled by React's data flow.
|
||||
*
|
||||
* @class ReactOwner
|
||||
*/
|
||||
var ReactOwner = {
|
||||
|
||||
/**
|
||||
* @param {?object} object
|
||||
* @return {boolean} True if `object` is a valid owner.
|
||||
* @final
|
||||
*/
|
||||
isValidOwner: function(object) {
|
||||
return !!(
|
||||
(object &&
|
||||
typeof object.attachRef === 'function' && typeof object.detachRef === 'function')
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
* Adds a component by ref to an owner component.
|
||||
*
|
||||
* @param {ReactComponent} component Component to reference.
|
||||
* @param {string} ref Name by which to refer to the component.
|
||||
* @param {ReactOwner} owner Component on which to record the ref.
|
||||
* @final
|
||||
* @internal
|
||||
*/
|
||||
addComponentAsRefTo: function(component, ref, owner) {
|
||||
("production" !== process.env.NODE_ENV ? invariant(
|
||||
ReactOwner.isValidOwner(owner),
|
||||
'addComponentAsRefTo(...): Only a ReactOwner can have refs. This ' +
|
||||
'usually means that you\'re trying to add a ref to a component that ' +
|
||||
'doesn\'t have an owner (that is, was not created inside of another ' +
|
||||
'component\'s `render` method). Try rendering this component inside of ' +
|
||||
'a new top-level component which will hold the ref.'
|
||||
) : invariant(ReactOwner.isValidOwner(owner)));
|
||||
owner.attachRef(ref, component);
|
||||
},
|
||||
|
||||
/**
|
||||
* Removes a component by ref from an owner component.
|
||||
*
|
||||
* @param {ReactComponent} component Component to dereference.
|
||||
* @param {string} ref Name of the ref to remove.
|
||||
* @param {ReactOwner} owner Component on which the ref is recorded.
|
||||
* @final
|
||||
* @internal
|
||||
*/
|
||||
removeComponentAsRefFrom: function(component, ref, owner) {
|
||||
("production" !== process.env.NODE_ENV ? invariant(
|
||||
ReactOwner.isValidOwner(owner),
|
||||
'removeComponentAsRefFrom(...): Only a ReactOwner can have refs. This ' +
|
||||
'usually means that you\'re trying to remove a ref to a component that ' +
|
||||
'doesn\'t have an owner (that is, was not created inside of another ' +
|
||||
'component\'s `render` method). Try rendering this component inside of ' +
|
||||
'a new top-level component which will hold the ref.'
|
||||
) : invariant(ReactOwner.isValidOwner(owner)));
|
||||
// Check that `component` is still the current ref because we do not want to
|
||||
// detach the ref if another component stole it.
|
||||
if (owner.getPublicInstance().refs[ref] === component.getPublicInstance()) {
|
||||
owner.detachRef(ref);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = ReactOwner;
|
Reference in New Issue
Block a user