comkit-preact
Advanced tools
@@ -11,2 +11,6 @@ 'use strict'; | ||
var _classnames = require('classnames'); | ||
var _classnames2 = _interopRequireDefault(_classnames); | ||
var _FormElement = require('./FormElement'); | ||
@@ -37,3 +41,2 @@ | ||
console.log(groupValue); | ||
if (e.target.checked) { | ||
@@ -44,3 +47,2 @@ if (this.props.idAttribute) { | ||
console.log(inputValue); | ||
groupValue = groupValue.concat(inputValue).sort(this.props.idAttribute ? (a, b) => { | ||
@@ -69,3 +71,2 @@ let sortAttribute = this.props.sortAttribute || this.props.idAttribute; | ||
return value[this.props.idAttribute] !== inputValue; | ||
// inputValue = this.props.values.find((item) => item[this.props.idAttribute] === inputValue); | ||
} | ||
@@ -76,3 +77,2 @@ | ||
} | ||
console.log(groupValue); | ||
@@ -121,3 +121,3 @@ this.setValue(groupValue.length ? groupValue : undefined); | ||
'div', | ||
{ 'class': classes }, | ||
{ 'class': (0, _classnames2.default)(classes) }, | ||
children, | ||
@@ -124,0 +124,0 @@ (0, _preact.h)('label', { 'class': 'icon' }), |
@@ -9,20 +9,8 @@ 'use strict'; | ||
var _setValue = require('set-value'); | ||
var _deepEqual = require('deep-equal'); | ||
var _setValue2 = _interopRequireDefault(_setValue); | ||
var _deepEqual2 = _interopRequireDefault(_deepEqual); | ||
var _unsetValue = require('unset-value'); | ||
var _unsetValue2 = _interopRequireDefault(_unsetValue); | ||
var _getValue = require('get-value'); | ||
var _getValue2 = _interopRequireDefault(_getValue); | ||
var _lodash = require('lodash'); | ||
var _deepEqual = require('deep-equal'); | ||
var _deepEqual2 = _interopRequireDefault(_deepEqual); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -38,3 +26,9 @@ | ||
this.componentWillReceiveProps(props); | ||
this.attributes = props.attributes || {}; | ||
this.initialAttributes = Object.assign({}, this.attributes); | ||
this.state = { | ||
dirty: false, | ||
valid: this.validate() | ||
}; | ||
} | ||
@@ -51,3 +45,3 @@ | ||
componentWillReceiveProps(props = {}) { | ||
this.resetAttributes((0, _lodash.omit)(props, 'children')); | ||
this.resetAttributes(props.attributes); | ||
} | ||
@@ -80,11 +74,16 @@ | ||
setAttribute(attr, value) { | ||
const filter = (0, _getValue2.default)(this.filters, attr); | ||
// const filter = get(this.filters, attr); | ||
if (filter) value = filter(value); | ||
// if (filter) value = filter(value); | ||
(0, _setValue2.default)(this.attributes, attr, value); | ||
(0, _lodash.set)(this.attributes, attr, value); | ||
this.setState({ | ||
dirty: !(0, _deepEqual2.default)(this.attributes, this.initialAttributes), | ||
valid: this.validate() | ||
// skip a tick to let form element state update (if this.validate is called | ||
// immediately, the child/form element component will not have updated it's | ||
// state... ie the error field could be wrong | ||
setTimeout(() => { | ||
this.setState({ | ||
dirty: !(0, _deepEqual2.default)(this.attributes, this.initialAttributes), | ||
valid: this.validate() | ||
}); | ||
}); | ||
@@ -108,2 +107,3 @@ } | ||
validate(focus = false, touch = false) { | ||
// TODO maybe put this somewhere else | ||
if (touch) { | ||
@@ -137,8 +137,2 @@ this.inputs.forEach(input => input.touch()); | ||
exports.default = Form; | ||
// import Input from '../components/Input.jsx' | ||
// modules > lodas | ||
module.exports = exports['default']; |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.TextArea = exports.SingleCheckBox = exports.Pagination = exports.Input = exports.Form = exports.FormElement = exports.CheckBox = exports.CheckBoxGroup = undefined; | ||
exports.TextArea = exports.SingleCheckBox = exports.Pagination = exports.Message = exports.Input = exports.Form = exports.FormElement = exports.CheckBox = exports.CheckBoxGroup = undefined; | ||
@@ -29,2 +29,6 @@ var _CheckBoxGroup = require('./CheckBoxGroup'); | ||
var _Message = require('./Message'); | ||
var _Message2 = _interopRequireDefault(_Message); | ||
var _Pagination = require('./Pagination'); | ||
@@ -50,2 +54,3 @@ | ||
Input: _Input2.default, | ||
Message: _Message2.default, | ||
Pagination: _Pagination2.default, | ||
@@ -60,4 +65,5 @@ SingleCheckBox: _SingleCheckBox2.default, | ||
exports.Input = _Input2.default; | ||
exports.Message = _Message2.default; | ||
exports.Pagination = _Pagination2.default; | ||
exports.SingleCheckBox = _SingleCheckBox2.default; | ||
exports.TextArea = _TextArea2.default; |
@@ -9,2 +9,6 @@ 'use strict'; | ||
var _classnames = require('classnames'); | ||
var _classnames2 = _interopRequireDefault(_classnames); | ||
var _lodash = require('lodash'); | ||
@@ -34,3 +38,3 @@ | ||
'div', | ||
{ 'class': classes }, | ||
{ 'class': (0, _classnames2.default)(classes) }, | ||
(0, _preact.h)( | ||
@@ -37,0 +41,0 @@ 'label', |
@@ -9,2 +9,6 @@ 'use strict'; | ||
var _classnames = require('classnames'); | ||
var _classnames2 = _interopRequireDefault(_classnames); | ||
var _FormElement = require('./FormElement'); | ||
@@ -31,3 +35,3 @@ | ||
'div', | ||
{ 'class': classes }, | ||
{ 'class': (0, _classnames2.default)(classes) }, | ||
(0, _preact.h)( | ||
@@ -34,0 +38,0 @@ 'label', |
@@ -9,2 +9,6 @@ 'use strict'; | ||
var _classnames = require('classnames'); | ||
var _classnames2 = _interopRequireDefault(_classnames); | ||
var _lodash = require('lodash'); | ||
@@ -45,3 +49,3 @@ | ||
'div', | ||
{ 'class': classes }, | ||
{ 'class': (0, _classnames2.default)(classes) }, | ||
(0, _preact.h)( | ||
@@ -48,0 +52,0 @@ 'label', |
{ | ||
"name": "comkit-preact", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"description": "Collection of Preact components", | ||
@@ -33,2 +33,3 @@ "main": "node/index.js", | ||
"dependencies": { | ||
"classnames": "^2.2.5", | ||
"deep-equal": "^1.0.1", | ||
@@ -35,0 +36,0 @@ "lodash": "^4.17.4", |
import { h, Component } from 'preact'; | ||
import { omit } from 'lowline'; | ||
import classNames from 'classnames'; | ||
@@ -26,3 +26,2 @@ import FormElement from './FormElement'; | ||
console.log(groupValue); | ||
if (e.target.checked) { | ||
@@ -33,3 +32,2 @@ if (this.props.idAttribute) { | ||
console.log(inputValue); | ||
groupValue = groupValue.concat(inputValue).sort(this.props.idAttribute ? (a, b) => { | ||
@@ -58,3 +56,2 @@ let sortAttribute = this.props.sortAttribute || this.props.idAttribute; | ||
return value[this.props.idAttribute] !== inputValue; | ||
// inputValue = this.props.values.find((item) => item[this.props.idAttribute] === inputValue); | ||
} | ||
@@ -65,3 +62,2 @@ | ||
} | ||
console.log(groupValue); | ||
@@ -109,3 +105,3 @@ this.setValue(groupValue.length ? groupValue : undefined); | ||
return ( | ||
<div class={classes}> | ||
<div class={classNames(classes)}> | ||
{children} | ||
@@ -112,0 +108,0 @@ <label class="icon" /> |
import { h, Component } from 'preact'; | ||
// modules > lodas | ||
import set from 'set-value'; | ||
import unset from 'unset-value'; | ||
import get from 'get-value'; | ||
import { omit, forEach, bindAll } from 'lowline'; | ||
// import Input from '../components/Input.jsx' | ||
import deepEqual from 'deep-equal'; | ||
import { set, get, omit, forEach, bindAll } from 'lowline'; | ||
@@ -20,3 +13,9 @@ export default class Form extends Component { | ||
this.componentWillReceiveProps(props); | ||
this.attributes = props.attributes || {}; | ||
this.initialAttributes = Object.assign({}, this.attributes); | ||
this.state = { | ||
dirty: false, | ||
valid: this.validate(), | ||
}; | ||
} | ||
@@ -33,3 +32,3 @@ | ||
componentWillReceiveProps(props = {}) { | ||
this.resetAttributes(omit(props, 'children')); | ||
this.resetAttributes(props.attributes); | ||
} | ||
@@ -62,11 +61,16 @@ | ||
setAttribute(attr, value) { | ||
const filter = get(this.filters, attr); | ||
// const filter = get(this.filters, attr); | ||
if (filter) value = filter(value); | ||
// if (filter) value = filter(value); | ||
set(this.attributes, attr, value); | ||
this.setState({ | ||
dirty: !deepEqual(this.attributes, this.initialAttributes), | ||
valid: this.validate(), | ||
// skip a tick to let form element state update (if this.validate is called | ||
// immediately, the child/form element component will not have updated it's | ||
// state... ie the error field could be wrong | ||
setTimeout(() => { | ||
this.setState({ | ||
dirty: !deepEqual(this.attributes, this.initialAttributes), | ||
valid: this.validate(), | ||
}); | ||
}); | ||
@@ -90,2 +94,3 @@ } | ||
validate(focus = false, touch = false) { | ||
// TODO maybe put this somewhere else | ||
if (touch) { | ||
@@ -92,0 +97,0 @@ this.inputs.forEach((input) => input.touch()); |
@@ -6,2 +6,3 @@ import CheckBoxGroup from './CheckBoxGroup'; | ||
import Input from './Input'; | ||
import Message from './Message'; | ||
import Pagination from './Pagination'; | ||
@@ -17,2 +18,3 @@ import SingleCheckBox from './SingleCheckBox'; | ||
Input, | ||
Message, | ||
Pagination, | ||
@@ -29,2 +31,3 @@ SingleCheckBox, | ||
Input, | ||
Message, | ||
Pagination, | ||
@@ -31,0 +34,0 @@ SingleCheckBox, |
import { h, Component } from 'preact'; | ||
import classNames from 'classnames'; | ||
import { omit } from 'lowline'; | ||
@@ -22,3 +22,3 @@ | ||
return ( | ||
<div class={classes}> | ||
<div class={classNames(classes)}> | ||
<label className="placeholder">{placeholder}</label> | ||
@@ -25,0 +25,0 @@ <input |
import { h } from 'preact'; | ||
import classNames from 'classnames'; | ||
@@ -19,3 +20,3 @@ import FormElement from './FormElement'; | ||
return ( | ||
<div class={classes}> | ||
<div class={classNames(classes)}> | ||
<label class="checkbox"> | ||
@@ -22,0 +23,0 @@ <input |
import { h, Component } from 'preact'; | ||
import classNames from 'classnames'; | ||
import { omit } from 'lowline'; | ||
@@ -33,3 +33,3 @@ | ||
return ( | ||
<div class={classes}> | ||
<div class={classNames(classes)}> | ||
<label className="placeholder">{placeholder}</label> | ||
@@ -36,0 +36,0 @@ <textarea |
39497
4.49%26
8.33%1175
4.63%6
20%