Skip to content

Commit

Permalink
fix sandbox template Form components
Browse files Browse the repository at this point in the history
- for Vue, Vue3, HTML, Svelte, Preact, HTML and Angular
  • Loading branch information
yannbf committed Jun 19, 2023
1 parent 91c4339 commit de35e3e
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 20 deletions.
4 changes: 2 additions & 2 deletions code/addons/interactions/template/stories/basics.stories.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export const Callback = {
await fireEvent.click(canvas.getByRole('button'));
});

await expect(args.onSuccess).toHaveBeenCalled();
await expect(args.onSuccess).toHaveBeenCalledWith('test');
},
};

Expand Down Expand Up @@ -113,7 +113,7 @@ export const UserEventSetup = {
await user.keyboard('{enter}');
const submitButton = await canvas.findByRole('button');
await expect(submitButton).toHaveFocus();
await expect(args.onSuccess).toHaveBeenCalled();
await expect(args.onSuccess).toHaveBeenCalledWith('Pasting: foobar');
});
},
};
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { Component, Output, EventEmitter } from '@angular/core';
<form id="interaction-test-form" (submit)="handleSubmit($event)">
<label>
Enter Value
<input type="text" data-testid="value" [value]="value" required />
<input type="text" data-testid="value" [(ngModel)]="value" required />
</label>
<button type="submit">Submit</button>
<p *ngIf="complete">Completed!!</p>
Expand Down
14 changes: 8 additions & 6 deletions code/renderers/html/template/components/Form.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,32 @@
export const Form = ({ onSuccess }) => {
const container = document.createElement('div');

const getInnerHTML = ({ complete }) => `
const getInnerHTML = ({ complete, value }) => `
<form id="interaction-test-form">
<label>
Enter Value
<input type="text" data-testid="value" required />
<input type="text" data-testid="value" value="${value}" required />
</label>
<button type="submit">Submit</button>
${complete ? '<p>Completed!!</p>' : ''}
</form>
`;

container.innerHTML = getInnerHTML({ complete: false });
container.innerHTML = getInnerHTML({ complete: false, value: '' });

const form = container.querySelector('form');
form.addEventListener('submit', (e) => {
e.preventDefault();

const { value } = form.querySelector('input'); // Store the current value

setTimeout(() => {
container.innerHTML = getInnerHTML({ complete: true });
container.innerHTML = getInnerHTML({ complete: true, value });
}, 500);
setTimeout(() => {
container.innerHTML = getInnerHTML({ complete: false });
container.innerHTML = getInnerHTML({ complete: false, value });
}, 1500);
onSuccess(e);
onSuccess(value);
});

return container;
Expand Down
2 changes: 1 addition & 1 deletion code/renderers/preact/template/components/Form.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export const Form = ({ onSuccess }) => {
data-testid="value"
value={value}
required
onChange={(event) => setValue(event.target.value)}
onInput={(event) => setValue(event.target.value)}
/>
</label>
<button type="submit">Submit</button>
Expand Down
4 changes: 2 additions & 2 deletions code/renderers/svelte/template/components/Form.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
<form id="interaction-test-form" on:submit|preventDefault={handleSubmit}>
<label>
Enter Value
<input type="text" data-testid="value" {value} required on:click={handleClick} />
<input type="text" data-testid="value" bind:value required on:click={handleClick} />
</label>
<button type="submit">Submit</button>
{#if complete}<p>Completed!!</p>{/if}
</form>
</form>
11 changes: 7 additions & 4 deletions code/renderers/vue/template/components/Form.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@
<form id="interaction-test-form" @submit.prevent="onSubmit">
<label>
Enter Value
<input type="text" data-testid="value" :value="value" required @click="setValue" />
<input
type="text"
data-testid="value"
:value="value"
@input="value = $event.target.value"
required
/>
</label>
<button type="submit">Submit</button>
<p v-if="complete">Completed!!</p>
Expand All @@ -27,9 +33,6 @@ export default {
},
methods: {
setValue(event) {
this.value = event.target.value;
},
onSubmit() {
this.onSuccess(this.value);
setTimeout(() => {
Expand Down
5 changes: 1 addition & 4 deletions code/renderers/vue3/template/components/Form.vue
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<form id="interaction-test-form" @submit.prevent="onSubmit">
<label>
Enter Value
<input type="text" data-testid="value" :value="value" required @click="setValue" />
<input type="text" data-testid="value" v-model="value" required />
</label>
<button type="submit">Submit</button>
<p v-if="complete">Completed!!</p>
Expand All @@ -27,9 +27,6 @@ export default {
},
methods: {
setValue(event) {
this.value = event.target.value;
},
onSubmit() {
this.onSuccess(this.value);
setTimeout(() => {
Expand Down

0 comments on commit de35e3e

Please sign in to comment.