instantsearch-ui-components 0.4.0 → 0.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.
|
@@ -8,11 +8,42 @@ exports.createHitsComponent = createHitsComponent;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _lib = require("../lib");
|
|
11
|
-
var _excluded = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent"];
|
|
11
|
+
var _excluded = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent", "banner", "bannerComponent"];
|
|
12
12
|
// Should be imported from a shared package in the future
|
|
13
13
|
|
|
14
|
-
function
|
|
14
|
+
function createDefaultBannerComponent(_ref) {
|
|
15
15
|
var createElement = _ref.createElement;
|
|
16
|
+
return function DefaultBanner(_ref2) {
|
|
17
|
+
var _banner$link;
|
|
18
|
+
var classNames = _ref2.classNames,
|
|
19
|
+
banner = _ref2.banner;
|
|
20
|
+
if (!banner.image.urls[0].url) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return createElement("aside", {
|
|
24
|
+
className: (0, _lib.cx)('ais-Hits-banner', classNames.bannerRoot)
|
|
25
|
+
}, (_banner$link = banner.link) !== null && _banner$link !== void 0 && _banner$link.url ? createElement("a", {
|
|
26
|
+
className: (0, _lib.cx)('ais-Hits-banner-link', classNames.bannerLink),
|
|
27
|
+
href: banner.link.url,
|
|
28
|
+
target: banner.link.target
|
|
29
|
+
}, createElement("img", {
|
|
30
|
+
className: (0, _lib.cx)('ais-Hits-banner-image', classNames.bannerImage),
|
|
31
|
+
src: banner.image.urls[0].url,
|
|
32
|
+
alt: banner.image.title
|
|
33
|
+
})) : createElement("img", {
|
|
34
|
+
className: (0, _lib.cx)('ais-Hits-banner-image', classNames.bannerImage),
|
|
35
|
+
src: banner.image.urls[0].url,
|
|
36
|
+
alt: banner.image.title
|
|
37
|
+
}));
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function createHitsComponent(_ref3) {
|
|
41
|
+
var createElement = _ref3.createElement,
|
|
42
|
+
Fragment = _ref3.Fragment;
|
|
43
|
+
var DefaultBannerComponent = createDefaultBannerComponent({
|
|
44
|
+
createElement: createElement,
|
|
45
|
+
Fragment: Fragment
|
|
46
|
+
});
|
|
16
47
|
return function Hits(userProps) {
|
|
17
48
|
var _userProps$classNames = userProps.classNames,
|
|
18
49
|
classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
|
|
@@ -20,15 +51,18 @@ function createHitsComponent(_ref) {
|
|
|
20
51
|
ItemComponent = userProps.itemComponent,
|
|
21
52
|
sendEvent = userProps.sendEvent,
|
|
22
53
|
EmptyComponent = userProps.emptyComponent,
|
|
54
|
+
banner = userProps.banner,
|
|
55
|
+
BannerComponent = userProps.bannerComponent,
|
|
23
56
|
props = (0, _objectWithoutProperties2.default)(userProps, _excluded);
|
|
24
|
-
if (hits.length === 0 && EmptyComponent) {
|
|
25
|
-
return createElement(EmptyComponent, {
|
|
26
|
-
className: (0, _lib.cx)('ais-Hits', classNames.root, (0, _lib.cx)('ais-Hits--empty', classNames.emptyRoot), props.className)
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
57
|
return createElement("div", (0, _extends2.default)({}, props, {
|
|
30
58
|
className: (0, _lib.cx)('ais-Hits', classNames.root, hits.length === 0 && (0, _lib.cx)('ais-Hits--empty', classNames.emptyRoot), props.className)
|
|
31
|
-
}), createElement(
|
|
59
|
+
}), banner && (BannerComponent ? createElement(BannerComponent, {
|
|
60
|
+
className: (0, _lib.cx)('ais-Hits-banner', classNames.bannerRoot),
|
|
61
|
+
banner: banner
|
|
62
|
+
}) : createElement(DefaultBannerComponent, {
|
|
63
|
+
classNames: classNames,
|
|
64
|
+
banner: banner
|
|
65
|
+
})), hits.length === 0 && EmptyComponent ? createElement(EmptyComponent, null) : createElement("ol", {
|
|
32
66
|
className: (0, _lib.cx)('ais-Hits-list', classNames.list)
|
|
33
67
|
}, hits.map(function (hit, index) {
|
|
34
68
|
return createElement(ItemComponent, {
|
package/dist/cjs/version.js
CHANGED
|
@@ -3,6 +3,18 @@ type Hit = Record<string, unknown> & {
|
|
|
3
3
|
objectID: string;
|
|
4
4
|
};
|
|
5
5
|
type SendEventForHits = (...props: unknown[]) => void;
|
|
6
|
+
type Banner = {
|
|
7
|
+
image: {
|
|
8
|
+
urls: Array<{
|
|
9
|
+
url: string;
|
|
10
|
+
}>;
|
|
11
|
+
title?: string;
|
|
12
|
+
};
|
|
13
|
+
link?: {
|
|
14
|
+
url?: string;
|
|
15
|
+
target?: '_blank' | '_self';
|
|
16
|
+
};
|
|
17
|
+
};
|
|
6
18
|
export type HitsProps<THit> = ComponentProps<'div'> & {
|
|
7
19
|
hits: THit[];
|
|
8
20
|
itemComponent: (props: {
|
|
@@ -15,7 +27,12 @@ export type HitsProps<THit> = ComponentProps<'div'> & {
|
|
|
15
27
|
sendEvent: SendEventForHits;
|
|
16
28
|
classNames?: Partial<HitsClassNames>;
|
|
17
29
|
emptyComponent?: (props: {
|
|
30
|
+
className?: string;
|
|
31
|
+
}) => JSX.Element;
|
|
32
|
+
banner?: Banner;
|
|
33
|
+
bannerComponent?: (props: {
|
|
18
34
|
className: string;
|
|
35
|
+
banner: Banner;
|
|
19
36
|
}) => JSX.Element;
|
|
20
37
|
};
|
|
21
38
|
export type HitsClassNames = {
|
|
@@ -35,6 +52,18 @@ export type HitsClassNames = {
|
|
|
35
52
|
* Class names to apply to each item element
|
|
36
53
|
*/
|
|
37
54
|
item: string | string[];
|
|
55
|
+
/**
|
|
56
|
+
* Class names to apply to the banner element
|
|
57
|
+
*/
|
|
58
|
+
bannerRoot: string | string[];
|
|
59
|
+
/**
|
|
60
|
+
* Class names to apply to the banner image element
|
|
61
|
+
*/
|
|
62
|
+
bannerImage: string | string[];
|
|
63
|
+
/**
|
|
64
|
+
* Class names to apply to the banner link element
|
|
65
|
+
*/
|
|
66
|
+
bannerLink: string | string[];
|
|
38
67
|
};
|
|
39
|
-
export declare function createHitsComponent({ createElement }: Renderer): <THit extends Hit>(userProps: HitsProps<THit>) => JSX.Element;
|
|
68
|
+
export declare function createHitsComponent({ createElement, Fragment }: Renderer): <THit extends Hit>(userProps: HitsProps<THit>) => JSX.Element;
|
|
40
69
|
export {};
|
|
@@ -1,12 +1,43 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
|
-
var _excluded = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent"];
|
|
3
|
+
var _excluded = ["classNames", "hits", "itemComponent", "sendEvent", "emptyComponent", "banner", "bannerComponent"];
|
|
4
4
|
import { cx } from "../lib/index.js";
|
|
5
5
|
|
|
6
6
|
// Should be imported from a shared package in the future
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
function createDefaultBannerComponent(_ref) {
|
|
9
9
|
var createElement = _ref.createElement;
|
|
10
|
+
return function DefaultBanner(_ref2) {
|
|
11
|
+
var _banner$link;
|
|
12
|
+
var classNames = _ref2.classNames,
|
|
13
|
+
banner = _ref2.banner;
|
|
14
|
+
if (!banner.image.urls[0].url) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return createElement("aside", {
|
|
18
|
+
className: cx('ais-Hits-banner', classNames.bannerRoot)
|
|
19
|
+
}, (_banner$link = banner.link) !== null && _banner$link !== void 0 && _banner$link.url ? createElement("a", {
|
|
20
|
+
className: cx('ais-Hits-banner-link', classNames.bannerLink),
|
|
21
|
+
href: banner.link.url,
|
|
22
|
+
target: banner.link.target
|
|
23
|
+
}, createElement("img", {
|
|
24
|
+
className: cx('ais-Hits-banner-image', classNames.bannerImage),
|
|
25
|
+
src: banner.image.urls[0].url,
|
|
26
|
+
alt: banner.image.title
|
|
27
|
+
})) : createElement("img", {
|
|
28
|
+
className: cx('ais-Hits-banner-image', classNames.bannerImage),
|
|
29
|
+
src: banner.image.urls[0].url,
|
|
30
|
+
alt: banner.image.title
|
|
31
|
+
}));
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function createHitsComponent(_ref3) {
|
|
35
|
+
var createElement = _ref3.createElement,
|
|
36
|
+
Fragment = _ref3.Fragment;
|
|
37
|
+
var DefaultBannerComponent = createDefaultBannerComponent({
|
|
38
|
+
createElement: createElement,
|
|
39
|
+
Fragment: Fragment
|
|
40
|
+
});
|
|
10
41
|
return function Hits(userProps) {
|
|
11
42
|
var _userProps$classNames = userProps.classNames,
|
|
12
43
|
classNames = _userProps$classNames === void 0 ? {} : _userProps$classNames,
|
|
@@ -14,15 +45,18 @@ export function createHitsComponent(_ref) {
|
|
|
14
45
|
ItemComponent = userProps.itemComponent,
|
|
15
46
|
sendEvent = userProps.sendEvent,
|
|
16
47
|
EmptyComponent = userProps.emptyComponent,
|
|
48
|
+
banner = userProps.banner,
|
|
49
|
+
BannerComponent = userProps.bannerComponent,
|
|
17
50
|
props = _objectWithoutProperties(userProps, _excluded);
|
|
18
|
-
if (hits.length === 0 && EmptyComponent) {
|
|
19
|
-
return createElement(EmptyComponent, {
|
|
20
|
-
className: cx('ais-Hits', classNames.root, cx('ais-Hits--empty', classNames.emptyRoot), props.className)
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
51
|
return createElement("div", _extends({}, props, {
|
|
24
52
|
className: cx('ais-Hits', classNames.root, hits.length === 0 && cx('ais-Hits--empty', classNames.emptyRoot), props.className)
|
|
25
|
-
}), createElement(
|
|
53
|
+
}), banner && (BannerComponent ? createElement(BannerComponent, {
|
|
54
|
+
className: cx('ais-Hits-banner', classNames.bannerRoot),
|
|
55
|
+
banner: banner
|
|
56
|
+
}) : createElement(DefaultBannerComponent, {
|
|
57
|
+
classNames: classNames,
|
|
58
|
+
banner: banner
|
|
59
|
+
})), hits.length === 0 && EmptyComponent ? createElement(EmptyComponent, null) : createElement("ol", {
|
|
26
60
|
className: cx('ais-Hits-list', classNames.list)
|
|
27
61
|
}, hits.map(function (hit, index) {
|
|
28
62
|
return createElement(ItemComponent, {
|
package/dist/es/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "0.
|
|
1
|
+
declare const _default: "0.5.0";
|
|
2
2
|
export default _default;
|
package/dist/es/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default '0.
|
|
1
|
+
export default '0.5.0';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "instantsearch-ui-components",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Common UI components for InstantSearch.",
|
|
5
5
|
"types": "dist/es/index.d.ts",
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"dependencies": {
|
|
50
50
|
"@babel/runtime": "^7.1.2"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "68fe2ee8544096eff8c2fbafe01a50a8acbca2b9"
|
|
53
53
|
}
|