-
Notifications
You must be signed in to change notification settings - Fork 49
/
Copy pathindex.js
110 lines (95 loc) · 2.8 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import React from 'react'
import ReactDOM from 'react-dom'
//function Reform(WrappedComponent) {
//return class ReformEnhancer extends WrappedComponent {
//constructor(props) {
//super(props)
//this.state = {
//fields: {}
//}
//}
//render() {
//let ren = super.render()
////let ins = React.createElement(WrappedComponent)
////debugger
//let ren_children2 = React.Children.map(ren.props.children, chi => {
//if (!chi || chi.type !== 'input') {
//return chi
//}
//const name = chi.props.name;
//if (!name) {
//throw "reform requires all form controls to have a unique name attr (unique to the parent form)"
//}
//this.state.fields[name] = {
//onChange: (event) => {
//this.state.fields[name].value = event.target.value
//this.forceUpdate()
//},
//value: this.state.fields[name] ? this.state.fields[name].value : 'hi fcuker',
//error: 'something went wrong',
//valid: false,
//touched: true
//}
//let props = Object.assign({}, chi.props, this.state.fields[name])
//return React.cloneElement(chi, props, chi.props.children)
//})
//let props = Object.assign({}, ren.props, {"data-reform": 'hi fucker', children: null}, {reform: this.state.fields})
//let ren2 = React.cloneElement(ren, props, ren_children2)
//return ren2
//}
//}
//}
//class Example extends React.Component {
//constructor(props) {
//super(props)
//}
//render() {
//const fields = this.state.field;
//let err;
//debugger
//if (fields && fields.nemail && fields.nemail.touched && !fields.nemail.valid ) {
//err = (<span>{fields.nemail.error}</span>)
//}
//return (
//<form>
//<input type="email" name="nemail"/>
//{err}
//<input type="text" name="something" required/>
//</form>
//)
//}
//}
function Reform(WrappedComponent) {
return class ReformEnhancer extends WrappedComponent {
constructor(props) {
super(props)
this.state = {
fields: {}
}
}
render() {
debugger
let r = React.createElement(WrappedComponent, Object.assign({},this.props, {ref: 'test'}), null)
let i = this.refs.test
return r
}
}
}
class Example extends React.Component {
constructor(props) {
super(props)
}
method() {}
render() {
return (
<form>
<input type="email" name="nemail"/>
<input type="text" name="something" required/>
</form>
)
}
}
const EnhancedExample = Reform(Example)
//const EnhancedExample = Example
ReactDOM.render(<EnhancedExample/>, document.getElementById('root'))
ReactDOM.render(<EnhancedExample/>, document.getElementById('root'))