diff --git a/addons/web_editor/static/src/components/media_dialog/image_selector.xml b/addons/web_editor/static/src/components/media_dialog/image_selector.xml
index 368515117de..727fc211695 100644
--- a/addons/web_editor/static/src/components/media_dialog/image_selector.xml
+++ b/addons/web_editor/static/src/components/media_dialog/image_selector.xml
@@ -11,6 +11,20 @@
+
+
+
+
+
+
@@ -42,16 +56,8 @@
-
-
+
+
diff --git a/addons/web_unsplash/static/src/components/media_dialog/image_selector.js b/addons/web_unsplash/static/src/components/media_dialog/image_selector.js
index dd72342ddea..8b75650785c 100644
--- a/addons/web_unsplash/static/src/components/media_dialog/image_selector.js
+++ b/addons/web_unsplash/static/src/components/media_dialog/image_selector.js
@@ -107,6 +107,24 @@ patch(ImageSelector.prototype, 'image_selector_unsplash', {
return this._super() || this.state.isFetchingUnsplash;
},
+ get combinedRecords() {
+ /**
+ * Creates an array with alternating elements from two arrays.
+ *
+ * @param {Array} a
+ * @param {Array} b
+ * @returns {Array} alternating elements from a and b, starting with
+ * an element of a
+ */
+ function alternate(a, b) {
+ return [
+ a.map((v, i) => i < b.length ? [v, b[i]] : v),
+ b.slice(a.length),
+ ].flat(2);
+ }
+ return alternate(this.state.unsplashRecords, this.state.libraryMedia);
+ },
+
// It seems that setters are mandatory when patching a component that
// extends another component.
set canLoadMore(_) {},
diff --git a/addons/web_unsplash/static/src/components/media_dialog/image_selector.xml b/addons/web_unsplash/static/src/components/media_dialog/image_selector.xml
index f2d7f558943..16aeef2e94f 100644
--- a/addons/web_unsplash/static/src/components/media_dialog/image_selector.xml
+++ b/addons/web_unsplash/static/src/components/media_dialog/image_selector.xml
@@ -34,20 +34,28 @@
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+