const {h, render, Component, Text} = require('../');

class Counter extends Component {
	constructor() {
		super();

		this.state = {
			i: 0
		};
	}

	render() {
		return h('div', {}, [
			h('div', {}, []),
			h('div', {}, [
				h(Text, {blue: true}, '~/Projects/ink ')
			]),
			h('div', {}, [
				h(Text, {red: true}, 'λ '),
				h(Text, {green: true}, 'node '),
				h(Text, {}, 'media/example')
			]),
			h(Text, {green: true}, `${this.state.i} tests passed`)
		]);
	}

	componentDidMount() {
		this.timer = setInterval(() => {
			if (this.state.i === 50) {
				process.exit(0); // eslint-disable-line unicorn/no-process-exit
			}

			this.setState({
				i: this.state.i + 1
			});
		}, 100);
	}

	componentWillUnmount() {
		clearInterval(this.timer);
	}
}

render(h(Counter));

@@ -1,37 +1,75 @@
-const %7Bh, render, Component, Text
+'use strict';%0Aconst React = require('react');%0Aconst %7Brender, Box, Color
 %7D = 
@@ -79,17 +79,16 @@
 uire('..
-/
 ');%0A%0Acla
@@ -106,16 +106,26 @@
 extends 
+React.Pure
 Componen
@@ -216,72 +216,124 @@
 urn 
-h('div', %7B%7D, %5B%0A%09%09%09h('div', %7B%7D, %5B%5D),%0A%09%09%09h('div', %7B%7D, %5B%0A%09%09%09%09h(Text
+React.createElement(%0A%09%09%09Box,%0A%09%09%09%7BflexDirection: 'column'%7D,%0A%09%09%09React.createElement(Box, %7B%7D, React.createElement(Color
 , %7Bb
@@ -366,44 +366,81 @@
 k ')
+),
 %0A%09%09%09
-%5D),%0A%09%09%09h('div', 
+React.createElement(%0A%09%09%09%09Box,%0A%09%09%09%09
 %7B%7D,
- %5B
 %0A%09%09%09%09
-h(Text
+React.createElement(Color
 , %7Br
@@ -461,22 +461,41 @@
 '),%0A%09%09%09%09
-h(Text
+React.createElement(Color
 , %7Bgreen
@@ -517,22 +517,39 @@
 '),%0A%09%09%09%09
-h(Text
+React.createElement(Box
 , %7B%7D, 'm
@@ -570,21 +570,39 @@
 %0A%09%09%09
-%5D
 ),%0A%09%09%09
-h(Text
+React.createElement(Color
 , %7Bg
@@ -652,9 +652,8 @@
 )%0A%09%09
-%5D
 );%0A%09
@@ -833,16 +833,30 @@
 setState
+(prevState =%3E 
 (%7B%0A%09%09%09%09i
@@ -857,22 +857,21 @@
 %0A%09%09%09%09i: 
-this.s
+prevS
 tate.i +
@@ -878,17 +878,17 @@
  1%0A%09%09%09%7D)
-;
+)
 %0A%09%09%7D, 10
@@ -963,17 +963,35 @@
 %0Arender(
-h
+React.createElement
 (Counter

fix demo