fix: add missing request handler for rss feeds (#2006)
* fix: add missing request handler for rss feeds * fix: ci issues
This commit is contained in:
@@ -9,41 +9,26 @@ import { clientApi } from "@homarr/api/client";
|
||||
import type { WidgetComponentProps } from "../definition";
|
||||
import classes from "./component.module.scss";
|
||||
|
||||
export default function RssFeed({ options, itemId }: WidgetComponentProps<"rssFeed">) {
|
||||
const [rssFeeds] = clientApi.widget.rssFeed.getFeeds.useSuspenseQuery(
|
||||
export default function RssFeed({ options }: WidgetComponentProps<"rssFeed">) {
|
||||
const [feedEntries] = clientApi.widget.rssFeed.getFeeds.useSuspenseQuery(
|
||||
{
|
||||
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
||||
itemId: itemId!,
|
||||
urls: options.feedUrls,
|
||||
maximumAmountPosts: typeof options.maximumAmountPosts === "number" ? options.maximumAmountPosts : 100,
|
||||
},
|
||||
{
|
||||
refetchOnMount: false,
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
retry: false,
|
||||
select(data) {
|
||||
return data?.data ?? [];
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
const entries = rssFeeds
|
||||
.filter((feedGroup) => feedGroup.feed.entries !== undefined)
|
||||
.flatMap((feedGroup) => feedGroup.feed.entries)
|
||||
.filter((entry) => entry !== undefined)
|
||||
.sort((entryA, entryB) => {
|
||||
if (!entryA.published || !entryB.published) {
|
||||
return -1;
|
||||
}
|
||||
return new Date(entryB.published).getTime() - new Date(entryA.published).getTime();
|
||||
})
|
||||
.slice(0, options.maximumAmountPosts as number);
|
||||
|
||||
const languageDir = options.enableRtl ? "RTL" : "LTR";
|
||||
|
||||
return (
|
||||
<ScrollArea className="scroll-area-w100" w="100%" p="4cqmin">
|
||||
<Stack w={"100%"} gap="4cqmin">
|
||||
{entries.map((feedEntry) => (
|
||||
{feedEntries.map((feedEntry) => (
|
||||
<Card
|
||||
key={feedEntry.id}
|
||||
withBorder
|
||||
|
||||
Reference in New Issue
Block a user