From f50d99a2bc46fad33817325612cb49778a582784 Mon Sep 17 00:00:00 2001 From: LynithDev <61880709+LynithDev@users.noreply.github.com> Date: Sun, 8 Sep 2024 14:07:01 +0200 Subject: [PATCH] feat: Category mapping + search results tweaks --- .../src/ui/components/content/Markdown.tsx | 7 +- .../ui/components/content/SearchResults.tsx | 50 ++++++-- apps/frontend/src/ui/hooks/useBrowser.tsx | 11 +- apps/frontend/src/ui/hooks/usePagination.tsx | 4 +- .../src/ui/pages/browser/BrowserPackage.tsx | 6 +- .../src/ui/pages/browser/BrowserRoot.tsx | 52 ++++++--- .../src/ui/pages/browser/BrowserSearch.tsx | 33 +++--- apps/frontend/src/utils/browser.ts | 107 ++++++++++++------ 8 files changed, 176 insertions(+), 94 deletions(-) diff --git a/apps/frontend/src/ui/components/content/Markdown.tsx b/apps/frontend/src/ui/components/content/Markdown.tsx index 00d5ee6c..d9a1a9c6 100644 --- a/apps/frontend/src/ui/components/content/Markdown.tsx +++ b/apps/frontend/src/ui/components/content/Markdown.tsx @@ -20,11 +20,10 @@ function Markdown(props: MarkdownProps) { e.preventDefault(); }} onClick={(e) => { - e.stopImmediatePropagation(); - e.preventDefault(); - - // TODO: Create a custom renderer or just use something else instead of markdown-it :D if (e.target.nodeName === 'A') { + e.stopImmediatePropagation(); + e.preventDefault(); + const target = e.target as HTMLAnchorElement; if (target.href.startsWith('http')) promptOpen(target.href); diff --git a/apps/frontend/src/ui/components/content/SearchResults.tsx b/apps/frontend/src/ui/components/content/SearchResults.tsx index 243801b2..2a6b566b 100644 --- a/apps/frontend/src/ui/components/content/SearchResults.tsx +++ b/apps/frontend/src/ui/components/content/SearchResults.tsx @@ -1,5 +1,6 @@ import type { Providers, SearchResult } from '@onelauncher/client/bindings'; import { ChevronDownIcon, Download01Icon, HeartIcon } from '@untitled-theme/icons-solid'; +import type { JSX } from 'solid-js'; import { For, Match, Show, Switch, createSignal } from 'solid-js'; import Button from '../base/Button'; import useBrowser from '~ui/hooks/useBrowser'; @@ -9,7 +10,7 @@ import { abbreviateNumber } from '~utils'; interface SearchResultsContainerProps { provider: Providers; results: SearchResult[]; - header: string; + header: string | JSX.Element; category: string; collapsable?: boolean; } @@ -22,7 +23,15 @@ function SearchResultsContainer(props: SearchResultsContainerProps) { return (
No results found
+