diff --git a/packages/spotlight/src/modes/help/home-empty-groups.tsx b/packages/spotlight/src/modes/help/home-empty-groups.tsx index e035e66b9..28933696b 100644 --- a/packages/spotlight/src/modes/help/home-empty-groups.tsx +++ b/packages/spotlight/src/modes/help/home-empty-groups.tsx @@ -19,6 +19,7 @@ import type { SearchMode } from "../../lib/mode"; import { appIntegrationBoardMode } from "../app-integration-board"; import { commandMode } from "../command"; import { externalMode } from "../external"; +import { mediaMode } from "../media"; import { pageMode } from "../page"; import { userGroupMode } from "../user-group"; @@ -33,7 +34,7 @@ type QuickLinkOption = { export const useHomeEmptyGroups = () => { const { data: session } = useSession(); const tPages = useScopedI18n("search.mode.page.group.page.option"); - const visibleSearchModes: SearchMode[] = [appIntegrationBoardMode, externalMode, commandMode, pageMode]; + const visibleSearchModes: SearchMode[] = [appIntegrationBoardMode, externalMode, mediaMode, commandMode, pageMode]; if (session?.user.permissions.includes("admin")) { visibleSearchModes.unshift(userGroupMode); @@ -87,7 +88,7 @@ export const useHomeEmptyGroups = () => { useInteraction: interaction.link(({ path }) => ({ href: path })), }), createGroup({ - keyPath: "character", + keyPath: "modeKey", title: (t) => t("search.mode.help.group.mode.title"), options: visibleSearchModes.map(({ character, modeKey }) => ({ character, modeKey })), Component: ({ modeKey, character }) => { @@ -96,7 +97,7 @@ export const useHomeEmptyGroups = () => { return ( {t("help")} - {character} + {character && {character}} ); }, diff --git a/packages/spotlight/src/modes/home/home-search-engine-group.tsx b/packages/spotlight/src/modes/home/home-search-engine-group.tsx index 4aff71a52..0bd304e23 100644 --- a/packages/spotlight/src/modes/home/home-search-engine-group.tsx +++ b/packages/spotlight/src/modes/home/home-search-engine-group.tsx @@ -1,5 +1,5 @@ import { Box, Group, Stack, Text } from "@mantine/core"; -import { IconMovie, IconSearch, IconSearchOff } from "@tabler/icons-react"; +import { IconSearch, IconSearchOff } from "@tabler/icons-react"; import type { RouterOutputs } from "@homarr/api"; import { clientApi } from "@homarr/api/client"; @@ -64,10 +64,6 @@ export const homeSearchEngineGroup = createGroup({ clientApi.searchEngine.getDefaultSearchEngine.useQuery(undefined, { enabled: status !== "loading", }); - const { data: mediaRequestSearchTargets, ...mediaRequestSearchTargetsQuery } = - clientApi.integration.mediaRequestSearchTargets.useQuery(undefined, { - enabled: status !== "loading" && session?.user !== undefined, - }); const fromIntegrationEnabled = defaultSearchEngine?.type === "fromIntegration" && query.length > 0; const { data: results, ...resultQuery } = clientApi.integration.searchInIntegration.useQuery( { @@ -83,14 +79,12 @@ export const homeSearchEngineGroup = createGroup({ return { isLoading: defaultSearchEngineQuery.isLoading || - mediaRequestSearchTargetsQuery.isLoading || (resultQuery.isLoading && fromIntegrationEnabled) || status === "loading", isError: defaultSearchEngineQuery.isError || - mediaRequestSearchTargetsQuery.isError || (resultQuery.isError && fromIntegrationEnabled), - data: createDefaultSearchEntries(defaultSearchEngine, results, mediaRequestSearchTargets, session, query, t), + data: createDefaultSearchEntries(defaultSearchEngine, results, session, query, t), }; }, }); @@ -98,40 +92,14 @@ export const homeSearchEngineGroup = createGroup({ const createDefaultSearchEntries = ( defaultSearchEngine: RouterOutputs["searchEngine"]["getDefaultSearchEngine"] | null, results: RouterOutputs["integration"]["searchInIntegration"] | undefined, - mediaRequestSearchTargets: RouterOutputs["integration"]["mediaRequestSearchTargets"] | undefined, session: Session | null, query: string, t: TranslationFunction, ): GroupItem[] => { - const mediaRequestSearchEntry: GroupItem = { - id: "media-request-search", - name: t("search.mode.media.action.search.label"), - description: - mediaRequestSearchTargets && mediaRequestSearchTargets.length === 0 - ? t("search.mode.media.action.search.disabled.noIntegration") - : t("search.mode.media.action.search.description"), - icon: IconMovie, - disabled: !mediaRequestSearchTargets || mediaRequestSearchTargets.length === 0, - useInteraction(query) { - if (!mediaRequestSearchTargets || mediaRequestSearchTargets.length === 0) { - return { - type: "none", - }; - } - - return { - type: "mode", - mode: "media", - query, - }; - }, - }; - - if (!session?.user && !defaultSearchEngine) return [mediaRequestSearchEntry]; + if (!session?.user && !defaultSearchEngine) return []; if (!defaultSearchEngine) { return [ - mediaRequestSearchEntry, { id: "no-default", name: t("search.mode.home.group.search.option.no-default.label"), @@ -150,7 +118,6 @@ const createDefaultSearchEntries = ( if (defaultSearchEngine.type === "generic") { return [ - mediaRequestSearchEntry, { id: "search", name: t("search.mode.home.group.search.option.search.label", { @@ -173,7 +140,6 @@ const createDefaultSearchEntries = ( if (!results) { return [ - mediaRequestSearchEntry, { id: "from-integration", name: defaultSearchEngine.name, @@ -188,16 +154,13 @@ const createDefaultSearchEntries = ( ]; } - return [ - mediaRequestSearchEntry, - ...results.map((result) => ({ - id: `search-${result.id}`, - name: result.name, - description: result.text, - icon: result.image ?? IconSearch, - useInteraction() { - return useFromIntegrationSearchInteraction(defaultSearchEngine, result); - }, - })), - ]; + return results.map((result) => ({ + id: `search-${result.id}`, + name: result.name, + description: result.text, + icon: result.image ?? IconSearch, + useInteraction() { + return useFromIntegrationSearchInteraction(defaultSearchEngine, result); + }, + })); };