diff --git a/client/src/components/breaking-news-widget.tsx b/client/src/components/breaking-news-widget.tsx index 5bb3ae5..0e917e6 100644 --- a/client/src/components/breaking-news-widget.tsx +++ b/client/src/components/breaking-news-widget.tsx @@ -12,12 +12,14 @@ interface NewsItem { const VISIBLE_COUNT = 5; -export function BreakingNewsWidget() { +// startOffset zamakne zacetek vrtenja: dva primerka na isti strani sicer +// kazeta identicnih pet vrstic. +export function BreakingNewsWidget({ startOffset = 0 }: { startOffset?: number } = {}) { const { data: news, isLoading } = useQuery({ queryKey: ["/api/breaking-news"], }); - const [offset, setOffset] = useState(0); + const [offset, setOffset] = useState(startOffset); const [paused, setPaused] = useState(false); // Isti izvajalec ne sme stati drug ob drugem: vsaj 5 mest razmika. diff --git a/client/src/components/news-widget.tsx b/client/src/components/news-widget.tsx index 05362d3..9844a88 100644 --- a/client/src/components/news-widget.tsx +++ b/client/src/components/news-widget.tsx @@ -12,12 +12,14 @@ interface NewsItem { const VISIBLE_COUNT = 5; -export function NewsWidget() { +// startOffset zamakne zacetek vrtenja: dva primerka na isti strani sicer +// kazeta identicnih pet vrstic. +export function NewsWidget({ startOffset = 0 }: { startOffset?: number } = {}) { const { data: news, isLoading } = useQuery({ queryKey: ["/api/news-feed"], }); - const [offset, setOffset] = useState(0); + const [offset, setOffset] = useState(startOffset); const [paused, setPaused] = useState(false); // Isti izvajalec ne sme stati drug ob drugem: vsaj 5 mest razmika. diff --git a/client/src/pages/home.tsx b/client/src/pages/home.tsx index 63d6196..38460ec 100644 --- a/client/src/pages/home.tsx +++ b/client/src/pages/home.tsx @@ -828,21 +828,23 @@ export default function Home() { const widgets = useMemo(() => [ { id: "news", el:
}, { id: "breaking", el:
}, - { id: "news2", el:
}, - { id: "breaking2", el:
}, + { id: "news2", el:
}, + { id: "breaking2", el:
}, ], []); const gridItems = useMemo(() => { const items: { type: "article" | "widget" | "ad"; key: string; article?: Article; widget?: typeof widgets[0] }[] = []; let ai = 0; let wi = 0; - const widgetRows = Math.ceil(widgets.length / 2); - - for (let r = 0; r < widgetRows; r++) { - if (wi < widgets.length) items.push({ type: "widget", key: `w-${widgets[wi].id}`, widget: widgets[wi++] }); - if (wi < widgets.length) items.push({ type: "widget", key: `w-${widgets[wi].id}`, widget: widgets[wi++] }); - if (ai < spaced.length) items.push({ type: "article", key: `a-${spaced[ai].id}`, article: spaced[ai++] }); - if (ai < spaced.length) items.push({ type: "article", key: `a-${spaced[ai].id}`, article: spaced[ai++] }); + // Pripomocki z zunanjimi viri ne smejo stati skupaj: prej sta bila dva v isti + // vrstici in nato spet dva v naslednji, kar je izgledalo kot podvojen blok. + // Zdaj gre en pripomocek in za njim pet clankov. + const RAZMIK_PRIPOMOCKOV = 5; + while (wi < widgets.length) { + items.push({ type: "widget", key: `w-${widgets[wi].id}`, widget: widgets[wi++] }); + for (let k = 0; k < RAZMIK_PRIPOMOCKOV && ai < spaced.length; k++) { + items.push({ type: "article", key: `a-${spaced[ai].id}`, article: spaced[ai++] }); + } } while (ai < spaced.length) { @@ -1005,8 +1007,8 @@ export default function Home() {
- - + +