import { Col, Row } from "antd"; import { Link } from "react-router-dom"; import { MoodReadResponse, PostReadResponse } from "@newstackdev/iosdk-newgraph-client-js"; import { NLView } from "../../types"; import { PostWidget } from "../../Components/PostWidget"; import { Spin } from "../../Components/Spin"; import { useActions, useAppState } from "../../overmind"; import { useCachedMood } from "../../hooks/useCached"; import { useEffect, useState } from "react"; import FolderClosed from "../../Components/Icons/Folder/Closed"; import useVisibility, { useVisibilityOnce } from "../../hooks/useVisibility"; type MoodsGridParams = { title?: string; moods?: MoodReadResponse[]; loadMore?: () => void; }; const complementTo4 = (p: PostReadResponse[] = []) => p; export const MoodsGridRow: NLView<{ mood: MoodReadResponse; maxItems?: number; noFullWidth?: boolean; noFolder?: boolean; delay?: number; wrap?: boolean; }> = ({ mood, maxItems, noFullWidth, noFolder, wrap }) => { const [isVisible, currentElement] = useVisibilityOnce(-100); const state = useAppState(); const actions = useActions(); const m = useCachedMood(mood); //state.api.cache.moods[mood.id || ""] || {}; useEffect(() => { const pc = m?.posts?.length || 0; console.log("Visible: ", isVisible); isVisible && mood && (pc === 0 || (pc < 4 && !maxItems)) && actions.api.mood.getPosts(mood); }, [isVisible]); const postsList = maxItems ? m.posts?.slice(0, maxItems) : m.posts; console.log(postsList); return ( {noFolder ? ( "" ) : (

{m.title || ""} {/* {JSON.stringify(m || "")} */}
)} {complementTo4(postsList).map((p) => ( ))} {postsList?.length === 0 ? : ""}
); }; export const MoodsGrid: NLView = ({ moods, title, loadMore }) => { const [isVisible, currentElement] = useVisibility(-200); const state = useAppState(); useEffect(() => { isVisible && loadMore && loadMore(); }, [isVisible]); return ( <> {title &&

{title}

} {moods?.map((m, i) => ( ))}

{state.indicators.isWorking && loadMore ? : ""}
); };