Skip to content
Merged

Next #288

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions client/rerender.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,13 @@ function _rerender(current, next) {
return
}

if (current.type === 'textarea') {
current.value = current.children[0].text
next.value = next.children[0].text
updateAttributes(selector, current, next)
return
}

if (isText(current) && isText(next)) {
if (current.text !== next.text) {
selector.textContent = next.text;
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nullstack",
"version": "0.16.5",
"version": "0.16.6",
"description": "Full-stack Javascript Components for one-dev armies",
"main": "nullstack.js",
"author": "Mortaro",
Expand Down
6 changes: 6 additions & 0 deletions tests/src/ChildComponent.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -60,4 +60,10 @@ describe('ChildComponent', () => {
expect(element).toBeTruthy();
});

test('Nullstack is injected in tsx files', async () => {
await page.waitForSelector('[data-static-child-this]');
const element = await page.$('[data-static-child-this]');
expect(element).toBeTruthy();
});

});
File renamed without changes.
4 changes: 2 additions & 2 deletions tests/src/TwoWayBindings.njs
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ class TwoWayBindings extends Nullstack {
{!this.boolean && <div data-boolean-type={typeof this.boolean} />}
{this.number > 1 && <div data-number-type={typeof this.number} />}
<input bind={this.number} name="number" oninput={this.updateCharacter} />
<textarea bind={this.text} name="text" data-text={this.text} />
<button onclick={{ text: 'bbbb' }} data-textarea>textarea b</button>
<textarea bind={this.text} name="text" />
<button onclick={{ text: 'bbbb' }} data-textarea data-text={this.text}>textarea b</button>
<div data-character={this.character} />
<select bind={this.character} name="character">
{this.array.map((character) => <option>{character}</option>)}
Expand Down
4 changes: 2 additions & 2 deletions tests/src/TwoWayBindings.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ describe('TwoWayBindings', () => {

test('textareas value reflects variable changes', async () => {
await page.click('[data-textarea]')
await page.waitForSelector('textarea[data-text="bbbb"]')
const value = await page.$eval('[name="text"]', (element) => element.value);
await page.waitForSelector('[data-text="bbbb"]')
const value = await page.$eval('textarea', (element) => element.value);
expect(value).toMatch('bbbb');
});

Expand Down
16 changes: 8 additions & 8 deletions webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -312,10 +312,6 @@ function server(env, argv) {
babel ? babelJs : swcJs,
babel ? babelTs : swcTs,
babel ? babelNullstackJavascript : swcNullstackJavascript,
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('inject-nullstack.js'),
},
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('register-static-from-server.js'),
Expand All @@ -330,6 +326,10 @@ function server(env, argv) {
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('register-inner-components.js'),
},
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('inject-nullstack.js'),
},
babel ? babelNullstackTypescript : swcNullstackTypescript,
{
test: /\.(njs|nts|jsx|tsx)$/,
Expand Down Expand Up @@ -428,10 +428,6 @@ function client(env, argv) {
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('remove-import-from-client.js'),
},
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('inject-nullstack.js'),
},
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('remove-static-from-client.js'),
Expand All @@ -448,6 +444,10 @@ function client(env, argv) {
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('register-inner-components.js'),
},
{
test: /\.(njs|nts|jsx|tsx)$/,
loader: getLoader('inject-nullstack.js'),
},
babel ? babelNullstackTypescript : swcNullstackTypescript,
{
test: /\.(njs|nts|jsx|tsx)$/,
Expand Down