This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.0 KiB
93 lines
3.0 KiB
'use strict'; |
|
|
|
Object.defineProperty(exports, "__esModule", { |
|
value: true |
|
}); |
|
exports.default = bindAutoBindMethods; |
|
/** |
|
* 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 React source tree. An additional grant |
|
* of patent rights can be found in the PATENTS file in the same directory. |
|
* |
|
* Original: |
|
* https://github.com/facebook/react/blob/6508b1ad273a6f371e8d90ae676e5390199461b4/src/isomorphic/classic/class/ReactClass.js#L650-L713 |
|
*/ |
|
|
|
function bindAutoBindMethod(component, method) { |
|
var boundMethod = method.bind(component); |
|
|
|
boundMethod.__reactBoundContext = component; |
|
boundMethod.__reactBoundMethod = method; |
|
boundMethod.__reactBoundArguments = null; |
|
|
|
var componentName = component.constructor.displayName, |
|
_bind = boundMethod.bind; |
|
|
|
boundMethod.bind = function (newThis) { |
|
var args = Array.prototype.slice.call(arguments, 1); |
|
if (newThis !== component && newThis !== null) { |
|
console.warn('bind(): React component methods may only be bound to the ' + 'component instance. See ' + componentName); |
|
} else if (!args.length) { |
|
console.warn('bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See ' + componentName); |
|
return boundMethod; |
|
} |
|
|
|
var reboundMethod = _bind.apply(boundMethod, arguments); |
|
reboundMethod.__reactBoundContext = component; |
|
reboundMethod.__reactBoundMethod = method; |
|
reboundMethod.__reactBoundArguments = args; |
|
|
|
return reboundMethod; |
|
}; |
|
|
|
return boundMethod; |
|
} |
|
|
|
function bindAutoBindMethodsFromMap(component) { |
|
for (var autoBindKey in component.__reactAutoBindMap) { |
|
if (!component.__reactAutoBindMap.hasOwnProperty(autoBindKey)) { |
|
return; |
|
} |
|
|
|
// Tweak: skip methods that are already bound. |
|
// This is to preserve method reference in case it is used |
|
// as a subscription handler that needs to be detached later. |
|
if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { |
|
continue; |
|
} |
|
|
|
var method = component.__reactAutoBindMap[autoBindKey]; |
|
component[autoBindKey] = bindAutoBindMethod(component, method); |
|
} |
|
} |
|
|
|
function bindAutoBindMethods(component) { |
|
if (component.__reactAutoBindPairs) { |
|
bindAutoBindMethodsFromArray(component); |
|
} else if (component.__reactAutoBindMap) { |
|
bindAutoBindMethodsFromMap(component); |
|
} |
|
} |
|
|
|
function bindAutoBindMethodsFromArray(component) { |
|
var pairs = component.__reactAutoBindPairs; |
|
|
|
if (!pairs) { |
|
return; |
|
} |
|
|
|
for (var i = 0; i < pairs.length; i += 2) { |
|
var autoBindKey = pairs[i]; |
|
|
|
if (component.hasOwnProperty(autoBindKey) && component[autoBindKey].__reactBoundContext === component) { |
|
continue; |
|
} |
|
|
|
var method = pairs[i + 1]; |
|
|
|
component[autoBindKey] = bindAutoBindMethod(component, method); |
|
} |
|
} |