UNPKG

1.26 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _removeAttribute = require('./removeAttribute');
8
9var _removeAttribute2 = _interopRequireDefault(_removeAttribute);
10
11var _setAttribute = require('./setAttribute');
12
13var _setAttribute2 = _interopRequireDefault(_setAttribute);
14
15var _isUndefined = require('@f/is-undefined');
16
17var _isUndefined2 = _interopRequireDefault(_isUndefined);
18
19var _foreach = require('@f/foreach');
20
21var _foreach2 = _interopRequireDefault(_foreach);
22
23function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
25/**
26 * Update element
27 */
28
29/**
30 * Imports
31 */
32
33function updateElement(prev, next) {
34 var node = next.element = prev.element;
35
36 /**
37 * Diff attributes
38 */
39
40 var pattrs = prev.props;
41 var nattrs = next.props;
42
43 (0, _foreach2.default)(function (val, key) {
44 if (!nattrs || (0, _isUndefined2.default)(nattrs[key])) {
45 (0, _removeAttribute2.default)(node, key);
46 }
47 }, pattrs);
48
49 (0, _foreach2.default)(function (val, key) {
50 var pval = pattrs[key];
51 if (!pattrs || val !== pval) {
52 (0, _setAttribute2.default)(node, key, val, pval);
53 }
54 }, nattrs);
55
56 return next;
57}
58
59/**
60 * Exports
61 */
62
63exports.default = updateElement;
\No newline at end of file