vue-instantsearch
Version:
👀 Lightning-fast Algolia search for Vue apps
50 lines (46 loc) • 1.14 kB
JavaScript
import indexWidget from 'instantsearch.js/es/widgets/index/index';
import { createSuitMixin } from '../mixins/suit';
import { createWidgetMixin } from '../mixins/widget';
import { renderCompat, getDefaultSlot } from '../util/vue-compat';
// wrapped in a dummy function, since indexWidget doesn't render
const connectIndex = () => indexWidget;
export default {
name: 'AisIndex',
mixins: [
createSuitMixin({ name: 'Index' }),
createWidgetMixin(
{ connector: connectIndex },
{
$$widgetType: 'ais.index',
}
),
],
provide() {
return {
// The widget is created & registered by widgetMixin, accessor is needed
// because provide is not reactive.
$_ais_getParentIndex: () => this.widget,
};
},
props: {
indexName: {
type: String,
required: true,
},
indexId: {
type: String,
required: false,
},
},
render: renderCompat(function (h) {
return h('div', {}, getDefaultSlot(this));
}),
computed: {
widgetParams() {
return {
indexName: this.indexName,
indexId: this.indexId,
};
},
},
};