+
}
+ render={({ close }) => (
+
+ {searchCollections.map((collectionSlug) => (
+ handlePopupButtonClick(close, collectionSlug)}
+ >
+ {pluralizedLabels[collectionSlug]}
+
+ ))}
+ handlePopupButtonClick(close)}>
+ {t('general:allCollections')}
+
+
+ )}
+ showScrollbar
+ size="large"
+ verticalAlign="bottom"
+ />
+
+ {isLoading &&
}
+
+ )
+}
diff --git a/packages/plugin-search/src/Search/ui/ReindexButton/index.tsx b/packages/plugin-search/src/Search/ui/ReindexButton/index.tsx
new file mode 100644
index 0000000000..fbc341a75c
--- /dev/null
+++ b/packages/plugin-search/src/Search/ui/ReindexButton/index.tsx
@@ -0,0 +1,34 @@
+import type { SearchReindexButtonServerComponent } from './types.js'
+
+import { ReindexButtonClient } from './index.client.js'
+
+export const ReindexButton: SearchReindexButtonServerComponent = (props) => {
+ const { collectionLabels, i18n, searchCollections, searchSlug } = props
+
+ const getStaticLocalizedPluralLabels = () => {
+ return Object.fromEntries(
+ searchCollections.map((collection) => {
+ const labels = collectionLabels[collection]
+ const pluralLabel = labels?.plural
+
+ if (typeof pluralLabel === 'function') {
+ return [collection, pluralLabel({ t: i18n.t })]
+ }
+
+ if (pluralLabel) {
+ return [collection, pluralLabel]
+ }
+
+ return [collection, collection]
+ }),
+ )
+ }
+
+ return (
+