Skip to content

Commit 3574d80

Browse files
committed
Experimentally add j0ber's fix for removeRepeatable events
See wearebraid#432 for details. At time of writing the PR was still open and unapproved.
1 parent 829ad02 commit 3574d80

File tree

6 files changed

+12
-7
lines changed

6 files changed

+12
-7
lines changed

dist/formulate.esm.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/formulate.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/formulate.umd.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/FormulateGrouping.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,12 @@ export default {
121121
// In this context we actually have data
122122
this.context.model = this.context.model.filter((item, i) => i === index ? false : item)
123123
this.context.rootEmit('repeatableRemoved', this.context.model)
124+
this.context.rootEmit('repeatable-removed', this.context.model)
124125
} else if (!Array.isArray(this.context.model) && this.items.length > this.context.minimum) {
125126
// In this context the fields have never been touched (not "dirty")
126127
this.context.model = (new Array(this.items.length - 1)).fill('').map((_i, idx) => this.setId({}, idx))
127128
this.context.rootEmit('repeatableRemoved', this.context.model)
129+
this.context.rootEmit('repeatable-removed', this.context.model)
128130
}
129131
// Otherwise, do nothing, we're at our minimum
130132
},

src/inputs/FormulateInputGroup.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ export default {
142142
this.context.model = (new Array(this.totalItems + 1)).fill('').map(() => setId({}))
143143
}
144144
this.context.rootEmit('repeatableAdded', this.context.model)
145+
this.context.rootEmit('repeatable-added', this.context.model)
145146
},
146147
groupItemContext (context, option, groupAttributes) {
147148
const optionAttributes = { isGrouped: true }

test/unit/FormulateInputGroup.test.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -859,7 +859,8 @@ describe('FormulateInputGroup', () => {
859859
value: [{ username: 'mermaid', email: 'mermaid@wearebraid.com' }, { username: 'blah', email: 'blah@wearebraid.com' }],
860860
},
861861
listeners: {
862-
'repeatableRemoved': removeListener
862+
'repeatableRemoved': removeListener,
863+
'repeatable-removed': removeListener
863864
},
864865
slots: {
865866
default: `
@@ -871,7 +872,7 @@ describe('FormulateInputGroup', () => {
871872
await flushPromises()
872873
wrapper.find('.formulate-input-group-repeatable-remove').trigger('click')
873874
await flushPromises()
874-
expect(removeListener.mock.calls.length).toBe(1)
875+
expect(removeListener.mock.calls.length).toBe(2)
875876
})
876877

877878
it('allows passing errors down into groups', async () => {
@@ -884,7 +885,8 @@ describe('FormulateInputGroup', () => {
884885
value: [{}],
885886
},
886887
listeners: {
887-
'repeatableAdded': addListener
888+
'repeatableAdded': addListener,
889+
'repeatable-added': addListener
888890
},
889891
slots: {
890892
default: `
@@ -896,7 +898,7 @@ describe('FormulateInputGroup', () => {
896898
await flushPromises()
897899
wrapper.find('.formulate-input-group-add-more button').trigger('click')
898900
await flushPromises()
899-
expect(addListener.mock.calls.length).toBe(1)
901+
expect(addListener.mock.calls.length).toBe(2)
900902
})
901903

902904
it('ensures there are always a minimum number of items even if the model has fewer', async () => {

0 commit comments

Comments
 (0)