From 4a4e90a170de9c7c7cfdccc184e3b51c4ee741a1 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Mon, 3 Feb 2025 14:06:05 -0500 Subject: [PATCH] chore(plugin-search): deprecates apiBasePath from config (#10953) Continuation of #10632. The `apiBasePath` property in the Search Plugin config is unnecessary. This plugin reads directly from the Payload config for this property. Exposing it to the plugin's config was likely a mistake during sanitization before passing it through to the remaining files. This property was added to resolve the types, but as result, exposed it to the config unnecessarily. This PR marks this property with the deprecated flag to prevent breaking changes. --- .../Search/ui/ReindexButton/index.client.tsx | 26 +++++++++++-------- packages/plugin-search/src/index.ts | 1 - packages/plugin-search/src/types.ts | 6 +++++ 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/packages/plugin-search/src/Search/ui/ReindexButton/index.client.tsx b/packages/plugin-search/src/Search/ui/ReindexButton/index.client.tsx index 9e660aee34..56aa99ef4c 100644 --- a/packages/plugin-search/src/Search/ui/ReindexButton/index.client.tsx +++ b/packages/plugin-search/src/Search/ui/ReindexButton/index.client.tsx @@ -25,11 +25,14 @@ export const ReindexButtonClient: React.FC = ({ searchCollections, searchSlug, }) => { - const apiBasePath = useConfig().config.routes.api const { closeModal, openModal } = useModal() + + const { config } = useConfig() + const { i18n: { t }, } = useTranslation() + const locale = useLocale() const router = useRouter() @@ -47,15 +50,16 @@ export const ReindexButtonClient: React.FC = ({ closeConfirmModal() setLoading(true) - const basePath = apiBasePath.endsWith('/') ? apiBasePath.slice(0, -1) : apiBasePath - try { - const endpointRes = await fetch(`${basePath}/${searchSlug}/reindex?locale=${locale.code}`, { - body: JSON.stringify({ - collections: reindexCollections, - }), - method: 'POST', - }) + const endpointRes = await fetch( + `${config.routes.api}/${searchSlug}/reindex?locale=${locale.code}`, + { + body: JSON.stringify({ + collections: reindexCollections, + }), + method: 'POST', + }, + ) const { message } = (await endpointRes.json()) as { message: string } @@ -65,13 +69,13 @@ export const ReindexButtonClient: React.FC = ({ toast.success(message) router.refresh() } - } catch (err: unknown) { + } catch (_err: unknown) { // swallow error, toast shown above } finally { setReindexCollections([]) setLoading(false) } - }, [closeConfirmModal, isLoading, reindexCollections, router, searchSlug, locale, apiBasePath]) + }, [closeConfirmModal, isLoading, reindexCollections, router, searchSlug, locale, config]) const handleShowConfirmModal = useCallback( (collections: string | string[] = searchCollections) => { diff --git a/packages/plugin-search/src/index.ts b/packages/plugin-search/src/index.ts index 6c7db8a282..a43939d1c6 100644 --- a/packages/plugin-search/src/index.ts +++ b/packages/plugin-search/src/index.ts @@ -37,7 +37,6 @@ export const searchPlugin = const pluginConfig: SearchPluginConfigWithLocales = { // write any config defaults here - apiBasePath: config.routes?.api, deleteDrafts: true, labels, locales, diff --git a/packages/plugin-search/src/types.ts b/packages/plugin-search/src/types.ts index 0e1e6185f4..bdd8036ec9 100644 --- a/packages/plugin-search/src/types.ts +++ b/packages/plugin-search/src/types.ts @@ -31,6 +31,12 @@ export type BeforeSync = (args: { export type FieldsOverride = (args: { defaultFields: Field[] }) => Field[] export type SearchPluginConfig = { + /** + * @deprecated + * This plugin gets the api route from the config directly and does not need to be passed in. + * As long as you have `routes.api` set in your Payload config, the plugin will use that. + * This property will be removed in the next major version. + */ apiBasePath?: string beforeSync?: BeforeSync collections?: string[]