const addressForArticles = "wikiTest"; const authorForWidget = "eugenewolf507.near"; const accountId = props.accountId ?? context.accountId; if (!accountId) { return "No account ID"; } const profile = props.profile ?? Social.getr(`${accountId}/profile`); if (profile === null) { return "Loading"; } const wikiTestData = Social.get(`*/${addressForArticles}/articles/**`, "final"); const wikiTestArr = wikiTestData && Object.values(wikiTestData); const resultArticles = wikiTestArr && wikiTestArr.reduce( (acc, account) => acc.concat(Object.values(account[addressForArticles].articles)), [] ); resultArticles.length && resultArticles.sort((a, b) => { return Number(b.timeLastEdit) - Number(a.timeLastEdit); }); const filteredArticles = resultArticles.length && resultArticles.reduce((acc, article) => { if (!acc.some(({ articleId }) => articleId === article.articleId)) { return [...acc, article]; } else { return acc; } }, []); State.init({ currentTab: "loadarticles", }); const description = profile.description; const handleAuthor = (e, authorId) => { State.update({ ...state, article: undefined, authorId }); }; const getDate = (timestamp) => { const date = new Date(Number(timestamp)); return date.toDateString(); }; const getDateLastEdit = (timestamp) => { const date = new Date(Number(timestamp)); const dateString = `${date.toLocaleDateString()} / ${date.toLocaleTimeString()}`; return dateString; }; return ( <> <Widget src={`${authorForWidget}/widget/WikiOnSocialDB_MainNavigation`} props={{ currentNavPill: "articles" }} /> <div> <Widget src={`${authorForWidget}/widget/WikiOnSocialDB_AllArticlesList`} props={{ filteredArticles, getDateLastEdit, handleArticle, state, }} /> </div> </> );