MCPcopy
hub / github.com/mobxjs/mobx / mrFactory

Function mrFactory

docs/assets/getting-started-assets/javascripts/mobx-react.js:2–203  ·  view source on GitHub ↗
(mobx, React, ReactDOM)

Source from the content-addressed store, hash-verified

1;(function() {
2 function mrFactory(mobx, React, ReactDOM) {
3 if (!mobx) throw new Error("mobx-react requires the MobX package")
4 if (!React) throw new Error("mobx-react requires React to be available")
5
6 var isDevtoolsEnabled = false
7
8 // WeakMap<Node, Object>;
9 var componentByNodeRegistery = typeof WeakMap !== "undefined" ? new WeakMap() : undefined
10 var renderReporter = new mobx.SimpleEventEmitter()
11
12 function findDOMNode(component) {
13 if (ReactDOM) return ReactDOM.findDOMNode(component)
14 return null
15 }
16
17 function reportRendering(component) {
18 var node = findDOMNode(component)
19 if (node) componentByNodeRegistery.set(node, component)
20
21 renderReporter.emit({
22 event: "render",
23 renderTime: component.__$mobRenderEnd - component.__$mobRenderStart,
24 totalTime: Date.now() - component.__$mobRenderStart,
25 component: component,
26 node: node
27 })
28 }
29
30 var reactiveMixin = {
31 componentWillMount: function() {
32 // Generate friendly name for debugging
33 var name = [
34 this.displayName ||
35 this.name ||
36 (this.constructor && this.constructor.name) ||
37 "<component>",
38 "#",
39 this._reactInternalInstance && this._reactInternalInstance._rootNodeID,
40 ".render()"
41 ].join("")
42
43 var baseRender = this.render.bind(this)
44 var self = this
45 var reaction = null
46 var isRenderingPending = false
47
48 function initialRender() {
49 reaction = new mobx.Reaction(name, function() {
50 if (!isRenderingPending) {
51 isRenderingPending = true
52 React.Component.prototype.forceUpdate.call(self)
53 }
54 })
55 reactiveRender.$mobx = reaction
56 self.render = reactiveRender
57 return reactiveRender()
58 }
59
60 function reactiveRender() {

Callers 1

mobx-react.jsFile · 0.85

Calls 6

reportRenderingFunction · 0.85
isScheduledMethod · 0.80
findDOMNodeFunction · 0.70
disposeMethod · 0.65
deleteMethod · 0.65
keysMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…