vue-instantsearch 4.4.2 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/package.json +4 -4
- package/src/components/Breadcrumb.vue +1 -3
- package/src/components/ClearRefinements.vue +1 -3
- package/src/components/CurrentRefinements.vue +1 -4
- package/src/components/HierarchicalMenu.vue +3 -11
- package/src/components/HitsPerPage.vue +2 -3
- package/src/components/Menu.vue +1 -3
- package/src/components/MenuSelect.vue +1 -3
- package/src/components/NumericMenu.vue +3 -8
- package/src/components/Pagination.vue +1 -3
- package/src/components/RangeInput.vue +3 -11
- package/src/components/RatingMenu.vue +2 -3
- package/src/components/RefinementList.vue +1 -3
- package/src/components/SortBy.vue +2 -3
- package/src/components/ToggleRefinement.vue +3 -10
- package/src/components/__tests__/Breadcrumb.js +0 -25
- package/src/components/__tests__/ClearRefinements.js +0 -23
- package/src/components/__tests__/CurrentRefinements.js +0 -17
- package/src/components/__tests__/HierarchicalMenu.js +3 -19
- package/src/components/__tests__/HitsPerPage.js +0 -26
- package/src/components/__tests__/Menu.js +0 -22
- package/src/components/__tests__/MenuSelect.js +0 -23
- package/src/components/__tests__/NumericMenu.js +3 -25
- package/src/components/__tests__/Pagination.js +0 -21
- package/src/components/__tests__/RangeInput.js +1 -34
- package/src/components/__tests__/RatingMenu.js +0 -23
- package/src/components/__tests__/RefinementList.js +0 -23
- package/src/components/__tests__/SortBy.js +1 -23
- package/src/components/__tests__/ToggleRefinement.js +4 -33
- package/src/mixins/__mocks__/panel.js +1 -5
- package/src/mixins/__tests__/panel.test.js +18 -40
- package/src/mixins/panel.js +3 -1
- package/src/util/createServerRootMixin.js +10 -1
- package/vue2/cjs/index.js +1 -1
- package/vue2/cjs/index.js.map +1 -1
- package/vue2/es/package.json.js +1 -1
- package/vue2/es/src/components/Breadcrumb.vue.js +1 -1
- package/vue2/es/src/components/Breadcrumb.vue.js.map +1 -1
- package/vue2/es/src/components/ClearRefinements.vue.js +1 -1
- package/vue2/es/src/components/ClearRefinements.vue.js.map +1 -1
- package/vue2/es/src/components/CurrentRefinements.vue.js +1 -1
- package/vue2/es/src/components/CurrentRefinements.vue.js.map +1 -1
- package/vue2/es/src/components/HierarchicalMenu.vue.js +1 -1
- package/vue2/es/src/components/HierarchicalMenu.vue.js.map +1 -1
- package/vue2/es/src/components/HitsPerPage.vue.js +1 -1
- package/vue2/es/src/components/HitsPerPage.vue.js.map +1 -1
- package/vue2/es/src/components/Menu.vue.js +1 -1
- package/vue2/es/src/components/Menu.vue.js.map +1 -1
- package/vue2/es/src/components/MenuSelect.vue.js +1 -1
- package/vue2/es/src/components/MenuSelect.vue.js.map +1 -1
- package/vue2/es/src/components/NumericMenu.vue.js +1 -1
- package/vue2/es/src/components/NumericMenu.vue.js.map +1 -1
- package/vue2/es/src/components/Pagination.vue.js +1 -1
- package/vue2/es/src/components/Pagination.vue.js.map +1 -1
- package/vue2/es/src/components/RangeInput.vue.js +1 -1
- package/vue2/es/src/components/RangeInput.vue.js.map +1 -1
- package/vue2/es/src/components/RatingMenu.vue.js +1 -1
- package/vue2/es/src/components/RatingMenu.vue.js.map +1 -1
- package/vue2/es/src/components/RefinementList.vue.js +1 -1
- package/vue2/es/src/components/RefinementList.vue.js.map +1 -1
- package/vue2/es/src/components/SortBy.vue.js +1 -1
- package/vue2/es/src/components/SortBy.vue.js.map +1 -1
- package/vue2/es/src/components/ToggleRefinement.vue.js +1 -1
- package/vue2/es/src/components/ToggleRefinement.vue.js.map +1 -1
- package/vue2/es/src/mixins/panel.js +1 -1
- package/vue2/es/src/mixins/panel.js.map +1 -1
- package/vue2/es/src/util/createServerRootMixin.js +1 -1
- package/vue2/es/src/util/createServerRootMixin.js.map +1 -1
- package/vue2/umd/index.js +1 -1
- package/vue2/umd/index.js.map +1 -1
- package/vue3/cjs/index.js +1 -1
- package/vue3/cjs/index.js.map +1 -1
- package/vue3/es/package.json.js +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Breadcrumb.vue_vue&type=template&id=6f46de9a&lang.js.map +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/ClearRefinements.vue_vue&type=template&id=410a3aaa&lang.js.map +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/CurrentRefinements.vue_vue&type=template&id=4f1917ff&lang.js.map +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js +1 -1
- package/vue3/es/src/components/HierarchicalMenu.vue_vue&type=template&id=4361a0b8&lang.js.map +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js +1 -1
- package/vue3/es/src/components/HitsPerPage.vue_vue&type=template&id=74f3ac28&lang.js.map +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Menu.vue_vue&type=template&id=9bcc0be2&lang.js.map +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/MenuSelect.vue_vue&type=template&id=694477eb&lang.js.map +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js +1 -1
- package/vue3/es/src/components/NumericMenu.vue_vue&type=template&id=160fae0c&lang.js.map +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/Pagination.vue_vue&type=template&id=849a166c&lang.js.map +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js +1 -1
- package/vue3/es/src/components/RangeInput.vue_vue&type=template&id=1e17783d&lang.js.map +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js +1 -1
- package/vue3/es/src/components/RatingMenu.vue_vue&type=template&id=9254de68&lang.js.map +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/RefinementList.vue_vue&type=template&id=28927239&lang.js.map +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js +1 -1
- package/vue3/es/src/components/SortBy.vue_vue&type=template&id=b69b3b76&lang.js.map +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=script&lang.js.map +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js +1 -1
- package/vue3/es/src/components/ToggleRefinement.vue_vue&type=template&id=14e4586f&lang.js.map +1 -1
- package/vue3/es/src/mixins/panel.js +1 -1
- package/vue3/es/src/mixins/panel.js.map +1 -1
- package/vue3/es/src/util/createServerRootMixin.js +1 -1
- package/vue3/es/src/util/createServerRootMixin.js.map +1 -1
- package/vue3/umd/index.js +1 -1
- package/vue3/umd/index.js.map +1 -1
|
@@ -13,6 +13,7 @@ const defaultRange = {
|
|
|
13
13
|
const defaultState = {
|
|
14
14
|
start: [0, 1000],
|
|
15
15
|
range: defaultRange,
|
|
16
|
+
canRefine: true,
|
|
16
17
|
refine: () => {},
|
|
17
18
|
};
|
|
18
19
|
|
|
@@ -247,40 +248,6 @@ describe('rendering', () => {
|
|
|
247
248
|
});
|
|
248
249
|
});
|
|
249
250
|
|
|
250
|
-
it('calls the Panel mixin with `range`', async () => {
|
|
251
|
-
__setState({
|
|
252
|
-
...defaultState,
|
|
253
|
-
range: {
|
|
254
|
-
min: 0,
|
|
255
|
-
max: 10,
|
|
256
|
-
},
|
|
257
|
-
});
|
|
258
|
-
|
|
259
|
-
const wrapper = mount(RangeInput, {
|
|
260
|
-
propsData: {
|
|
261
|
-
attribute: 'price',
|
|
262
|
-
},
|
|
263
|
-
});
|
|
264
|
-
|
|
265
|
-
const mapStateToCanRefine = () =>
|
|
266
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
267
|
-
|
|
268
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
269
|
-
|
|
270
|
-
await wrapper.setData({
|
|
271
|
-
state: {
|
|
272
|
-
range: {
|
|
273
|
-
min: 0,
|
|
274
|
-
max: 0,
|
|
275
|
-
},
|
|
276
|
-
},
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
280
|
-
|
|
281
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
282
|
-
});
|
|
283
|
-
|
|
284
251
|
it('exposes send-event method for insights middleware', async () => {
|
|
285
252
|
const sendEvent = jest.fn();
|
|
286
253
|
__setState({
|
|
@@ -126,29 +126,6 @@ it('calls refine when clicked on link', async () => {
|
|
|
126
126
|
expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith('1');
|
|
127
127
|
});
|
|
128
128
|
|
|
129
|
-
it('calls the Panel mixin with `hasNoResults`', async () => {
|
|
130
|
-
__setState({ hasNoResults: false });
|
|
131
|
-
|
|
132
|
-
const wrapper = mount(RatingMenu, {
|
|
133
|
-
propsData: defaultProps,
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
const mapStateToCanRefine = () =>
|
|
137
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
138
|
-
|
|
139
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
140
|
-
|
|
141
|
-
await wrapper.setData({
|
|
142
|
-
state: {
|
|
143
|
-
hasNoResults: true,
|
|
144
|
-
},
|
|
145
|
-
});
|
|
146
|
-
|
|
147
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
148
|
-
|
|
149
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
150
|
-
});
|
|
151
|
-
|
|
152
129
|
it('exposes send-event method for insights middleware', async () => {
|
|
153
130
|
const sendEvent = jest.fn();
|
|
154
131
|
__setState({
|
|
@@ -166,29 +166,6 @@ it('behaves correctly', async () => {
|
|
|
166
166
|
expect(wrapper.vm.state.refine).toHaveBeenLastCalledWith('yo');
|
|
167
167
|
});
|
|
168
168
|
|
|
169
|
-
it('calls the Panel mixin with `canRefine`', async () => {
|
|
170
|
-
__setState({ ...defaultState });
|
|
171
|
-
|
|
172
|
-
const wrapper = mount(RefinementList, {
|
|
173
|
-
propsData: { attribute: 'something' },
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
const mapStateToCanRefine = () =>
|
|
177
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
178
|
-
|
|
179
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
180
|
-
|
|
181
|
-
await wrapper.setData({
|
|
182
|
-
state: {
|
|
183
|
-
canRefine: false,
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
188
|
-
|
|
189
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
190
|
-
});
|
|
191
|
-
|
|
192
169
|
it('exposes send-event method for insights middleware', async () => {
|
|
193
170
|
const sendEvent = jest.fn();
|
|
194
171
|
__setState({
|
|
@@ -12,6 +12,7 @@ const defaultState = {
|
|
|
12
12
|
{ value: 'some_index_quality', label: 'Quality ascending' },
|
|
13
13
|
],
|
|
14
14
|
hasNoResults: false,
|
|
15
|
+
canRefine: true,
|
|
15
16
|
currentRefinement: 'some_index',
|
|
16
17
|
};
|
|
17
18
|
|
|
@@ -106,26 +107,3 @@ it('calls `refine` when the selection changes with the `value`', async () => {
|
|
|
106
107
|
expect(refine).toHaveBeenLastCalledWith('some_index_quality');
|
|
107
108
|
expect(selectedOption.element.selected).toBe(true);
|
|
108
109
|
});
|
|
109
|
-
|
|
110
|
-
it('calls the Panel mixin with `hasNoResults`', async () => {
|
|
111
|
-
__setState({ ...defaultState });
|
|
112
|
-
|
|
113
|
-
const wrapper = mount(SortBy, {
|
|
114
|
-
propsData: defaultProps,
|
|
115
|
-
});
|
|
116
|
-
|
|
117
|
-
const mapStateToCanRefine = () =>
|
|
118
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
119
|
-
|
|
120
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
121
|
-
|
|
122
|
-
await wrapper.setData({
|
|
123
|
-
state: {
|
|
124
|
-
hasNoResults: true,
|
|
125
|
-
},
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
129
|
-
|
|
130
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
131
|
-
});
|
|
@@ -13,6 +13,7 @@ const defaultValue = {
|
|
|
13
13
|
|
|
14
14
|
const defaultState = {
|
|
15
15
|
value: defaultValue,
|
|
16
|
+
canRefine: true,
|
|
16
17
|
refine: () => {},
|
|
17
18
|
createURL: () => {},
|
|
18
19
|
};
|
|
@@ -82,6 +83,7 @@ describe('default render', () => {
|
|
|
82
83
|
it('renders correctly without refinement (with 0)', () => {
|
|
83
84
|
__setState({
|
|
84
85
|
...defaultState,
|
|
86
|
+
canRefine: false,
|
|
85
87
|
value: {
|
|
86
88
|
...defaultValue,
|
|
87
89
|
count: 0,
|
|
@@ -98,6 +100,7 @@ describe('default render', () => {
|
|
|
98
100
|
it('renders correctly without refinement (with null)', () => {
|
|
99
101
|
__setState({
|
|
100
102
|
...defaultState,
|
|
103
|
+
canRefine: false,
|
|
101
104
|
value: {
|
|
102
105
|
...defaultValue,
|
|
103
106
|
count: null,
|
|
@@ -162,39 +165,6 @@ describe('default render', () => {
|
|
|
162
165
|
});
|
|
163
166
|
});
|
|
164
167
|
|
|
165
|
-
it('calls the Panel mixin with `value.count`', async () => {
|
|
166
|
-
__setState({
|
|
167
|
-
...defaultState,
|
|
168
|
-
value: {
|
|
169
|
-
// Otherwise setData update the default value
|
|
170
|
-
// and impact the other tests. We should not
|
|
171
|
-
// rely on a global state for the tests.
|
|
172
|
-
...defaultValue,
|
|
173
|
-
},
|
|
174
|
-
});
|
|
175
|
-
|
|
176
|
-
const wrapper = mount(Toggle, {
|
|
177
|
-
propsData: defaultProps,
|
|
178
|
-
});
|
|
179
|
-
|
|
180
|
-
const mapStateToCanRefine = () =>
|
|
181
|
-
wrapper.vm.mapStateToCanRefine(wrapper.vm.state);
|
|
182
|
-
|
|
183
|
-
expect(mapStateToCanRefine()).toBe(true);
|
|
184
|
-
|
|
185
|
-
await wrapper.setData({
|
|
186
|
-
state: {
|
|
187
|
-
value: {
|
|
188
|
-
count: 0,
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
expect(mapStateToCanRefine()).toBe(false);
|
|
194
|
-
|
|
195
|
-
expect(wrapper.vm.mapStateToCanRefine({})).toBe(false);
|
|
196
|
-
});
|
|
197
|
-
|
|
198
168
|
it('exposes send-event method for insights middleware', async () => {
|
|
199
169
|
const sendEvent = jest.fn();
|
|
200
170
|
__setState({
|
|
@@ -255,6 +225,7 @@ describe('custom default render', () => {
|
|
|
255
225
|
it('renders correctly without refinement', () => {
|
|
256
226
|
__setState({
|
|
257
227
|
...defaultState,
|
|
228
|
+
canRefine: false,
|
|
258
229
|
value: {
|
|
259
230
|
...defaultValue,
|
|
260
231
|
count: 0,
|
|
@@ -86,18 +86,12 @@ describe('createPanelProviderMixin', () => {
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
describe('createPanelConsumerMixin', () => {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
it('emits PANEL_CHANGE_EVENT on `state.attributeName` change', async () => {
|
|
89
|
+
it('emits PANEL_CHANGE_EVENT on `state.canRefine` change', async () => {
|
|
92
90
|
const emitter = createFakeEmitter();
|
|
93
91
|
const Test = createFakeComponent();
|
|
94
92
|
|
|
95
93
|
const wrapper = mount(Test, {
|
|
96
|
-
mixins: [
|
|
97
|
-
createPanelConsumerMixin({
|
|
98
|
-
mapStateToCanRefine,
|
|
99
|
-
}),
|
|
100
|
-
],
|
|
94
|
+
mixins: [createPanelConsumerMixin()],
|
|
101
95
|
provide: {
|
|
102
96
|
[PANEL_EMITTER_NAMESPACE]: emitter,
|
|
103
97
|
},
|
|
@@ -105,7 +99,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
105
99
|
|
|
106
100
|
await wrapper.setData({
|
|
107
101
|
state: {
|
|
108
|
-
|
|
102
|
+
canRefine: false,
|
|
109
103
|
},
|
|
110
104
|
});
|
|
111
105
|
|
|
@@ -113,7 +107,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
113
107
|
expect(emitter.emit).toHaveBeenLastCalledWith(PANEL_CHANGE_EVENT, false);
|
|
114
108
|
|
|
115
109
|
if (isVue3) {
|
|
116
|
-
await wrapper.setData({ state: {
|
|
110
|
+
await wrapper.setData({ state: { canRefine: true } });
|
|
117
111
|
} else {
|
|
118
112
|
// ↓ this should be replaceable with `wrapper.setData()` but it didn't
|
|
119
113
|
// trigger the watcher in `createPanelConsumerMixin`.
|
|
@@ -121,7 +115,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
121
115
|
// https://github.com/vuejs/vue-test-utils/issues/1756
|
|
122
116
|
// https://github.com/vuejs/vue-test-utils/issues/149
|
|
123
117
|
wrapper.vm.$set(wrapper.vm, 'state', {
|
|
124
|
-
|
|
118
|
+
canRefine: true,
|
|
125
119
|
});
|
|
126
120
|
await nextTick();
|
|
127
121
|
}
|
|
@@ -135,11 +129,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
135
129
|
const Test = createFakeComponent();
|
|
136
130
|
|
|
137
131
|
const wrapper = mount(Test, {
|
|
138
|
-
mixins: [
|
|
139
|
-
createPanelConsumerMixin({
|
|
140
|
-
mapStateToCanRefine,
|
|
141
|
-
}),
|
|
142
|
-
],
|
|
132
|
+
mixins: [createPanelConsumerMixin()],
|
|
143
133
|
provide: {
|
|
144
134
|
[PANEL_EMITTER_NAMESPACE]: emitter,
|
|
145
135
|
},
|
|
@@ -147,7 +137,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
147
137
|
|
|
148
138
|
await wrapper.setData({
|
|
149
139
|
state: {
|
|
150
|
-
|
|
140
|
+
canRefine: false,
|
|
151
141
|
},
|
|
152
142
|
});
|
|
153
143
|
|
|
@@ -156,7 +146,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
156
146
|
|
|
157
147
|
await wrapper.setData({
|
|
158
148
|
state: {
|
|
159
|
-
|
|
149
|
+
canRefine: false,
|
|
160
150
|
},
|
|
161
151
|
});
|
|
162
152
|
|
|
@@ -168,11 +158,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
168
158
|
const Test = createFakeComponent();
|
|
169
159
|
|
|
170
160
|
const wrapper = mount(Test, {
|
|
171
|
-
mixins: [
|
|
172
|
-
createPanelConsumerMixin({
|
|
173
|
-
mapStateToCanRefine,
|
|
174
|
-
}),
|
|
175
|
-
],
|
|
161
|
+
mixins: [createPanelConsumerMixin()],
|
|
176
162
|
provide: {
|
|
177
163
|
[PANEL_EMITTER_NAMESPACE]: emitter,
|
|
178
164
|
},
|
|
@@ -180,7 +166,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
180
166
|
|
|
181
167
|
await wrapper.setData({
|
|
182
168
|
state: {
|
|
183
|
-
|
|
169
|
+
canRefine: true,
|
|
184
170
|
},
|
|
185
171
|
});
|
|
186
172
|
|
|
@@ -193,11 +179,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
193
179
|
const Test = createFakeComponent();
|
|
194
180
|
|
|
195
181
|
const wrapper = mount(Test, {
|
|
196
|
-
mixins: [
|
|
197
|
-
createPanelConsumerMixin({
|
|
198
|
-
mapStateToCanRefine,
|
|
199
|
-
}),
|
|
200
|
-
],
|
|
182
|
+
mixins: [createPanelConsumerMixin()],
|
|
201
183
|
provide: {
|
|
202
184
|
[PANEL_EMITTER_NAMESPACE]: emitter,
|
|
203
185
|
},
|
|
@@ -205,7 +187,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
205
187
|
|
|
206
188
|
await wrapper.setData({
|
|
207
189
|
state: {
|
|
208
|
-
|
|
190
|
+
canRefine: true,
|
|
209
191
|
},
|
|
210
192
|
});
|
|
211
193
|
|
|
@@ -227,11 +209,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
227
209
|
const Test = createFakeComponent();
|
|
228
210
|
|
|
229
211
|
const wrapper = mount(Test, {
|
|
230
|
-
mixins: [
|
|
231
|
-
createPanelConsumerMixin({
|
|
232
|
-
mapStateToCanRefine,
|
|
233
|
-
}),
|
|
234
|
-
],
|
|
212
|
+
mixins: [createPanelConsumerMixin()],
|
|
235
213
|
provide: {
|
|
236
214
|
[PANEL_EMITTER_NAMESPACE]: emitter,
|
|
237
215
|
},
|
|
@@ -239,7 +217,7 @@ describe('createPanelConsumerMixin', () => {
|
|
|
239
217
|
|
|
240
218
|
await wrapper.setData({
|
|
241
219
|
state: {
|
|
242
|
-
|
|
220
|
+
canRefine: true,
|
|
243
221
|
},
|
|
244
222
|
});
|
|
245
223
|
|
|
@@ -247,9 +225,9 @@ describe('createPanelConsumerMixin', () => {
|
|
|
247
225
|
expect(emitter.emit).toHaveBeenLastCalledWith(PANEL_CHANGE_EVENT, true);
|
|
248
226
|
|
|
249
227
|
if (isVue3) {
|
|
250
|
-
await wrapper.setData({ state: {
|
|
228
|
+
await wrapper.setData({ state: { canRefine: false } });
|
|
251
229
|
} else {
|
|
252
|
-
wrapper.vm.$set(wrapper.vm, 'state', {
|
|
230
|
+
wrapper.vm.$set(wrapper.vm, 'state', { canRefine: false });
|
|
253
231
|
await nextTick();
|
|
254
232
|
}
|
|
255
233
|
|
|
@@ -257,9 +235,9 @@ describe('createPanelConsumerMixin', () => {
|
|
|
257
235
|
expect(emitter.emit).toHaveBeenLastCalledWith(PANEL_CHANGE_EVENT, false);
|
|
258
236
|
|
|
259
237
|
if (isVue3) {
|
|
260
|
-
await wrapper.setData({ state: {
|
|
238
|
+
await wrapper.setData({ state: { canRefine: false } });
|
|
261
239
|
} else {
|
|
262
|
-
wrapper.vm.$set(wrapper.vm, 'state', {
|
|
240
|
+
wrapper.vm.$set(wrapper.vm, 'state', { canRefine: false });
|
|
263
241
|
await nextTick();
|
|
264
242
|
}
|
|
265
243
|
|
package/src/mixins/panel.js
CHANGED
|
@@ -39,7 +39,9 @@ export const createPanelProviderMixin = () => ({
|
|
|
39
39
|
},
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
export const createPanelConsumerMixin = ({
|
|
42
|
+
export const createPanelConsumerMixin = ({
|
|
43
|
+
mapStateToCanRefine = state => Boolean(state.canRefine),
|
|
44
|
+
} = {}) => ({
|
|
43
45
|
inject: {
|
|
44
46
|
emitter: {
|
|
45
47
|
from: PANEL_EMITTER_NAMESPACE,
|
|
@@ -105,7 +105,16 @@ function augmentInstantSearch(instantSearchOptions, cloneComponent) {
|
|
|
105
105
|
mixins: [
|
|
106
106
|
{
|
|
107
107
|
beforeCreate() {
|
|
108
|
-
|
|
108
|
+
const descriptor = Object.getOwnPropertyDescriptor(
|
|
109
|
+
component,
|
|
110
|
+
'$nuxt'
|
|
111
|
+
);
|
|
112
|
+
|
|
113
|
+
const isWritable = descriptor
|
|
114
|
+
? descriptor.writable || descriptor.set
|
|
115
|
+
: false;
|
|
116
|
+
|
|
117
|
+
if (component.$nuxt && isWritable) {
|
|
109
118
|
// In case of Nuxt (3), we ensure the context is shared between
|
|
110
119
|
// the real and cloned component
|
|
111
120
|
this.$nuxt = component.$nuxt;
|