import React from "react"; import { Row, Col } from "react-bootstrap"; import { useTranslation } from "react-i18next"; import { AuthUser } from "@/services/user"; import { TimelineInfo } from "@/services/timeline"; import { getHttpTimelineClient } from "@/http/timeline"; import TimelineBoard from "./TimelineBoard"; import OfflineBoard from "./OfflineBoard"; const BoardWithUser: React.FC<{ user: AuthUser }> = ({ user }) => { const { t } = useTranslation(); const [relatedTimelines, setRelatedTimelines] = React.useState< TimelineInfo[] | "offline" | "loading" >("loading"); React.useEffect(() => { let subscribe = true; if (relatedTimelines === "loading") { void getHttpTimelineClient() .listTimeline({ relate: user.username }) .then( (timelines) => { if (subscribe) { setRelatedTimelines(timelines); } }, () => { setRelatedTimelines("offline"); } ); } return () => { subscribe = false; }; }, [user, relatedTimelines]); return ( {relatedTimelines === "offline" ? ( { setRelatedTimelines("loading"); }} /> ) : ( { setRelatedTimelines("loading"); }} /> )} ); }; export default BoardWithUser;