import { createEffect, createMemo, For, Show } from 'solid-js' import { Shout, Topic, Author, Reaction, ReactionKind } from '../../graphql/types.gen' import '../../styles/Feed.scss' import Icon from '../Nav/Icon' import { byCreated, sortBy } from '../../utils/sortby' import { TopicCard } from '../Topic/Card' import { ArticleCard } from '../Feed/Card' import { t } from '../../utils/intl' import { useStore } from '@nanostores/solid' import { session } from '../../stores/auth' import CommentCard from '../Article/Comment' import { loadRecentArticles, useArticlesStore } from '../../stores/zine/articles' import { useReactionsStore } from '../../stores/zine/reactions' import { useAuthorsStore } from '../../stores/zine/authors' import { FeedSidebar } from '../Feed/Sidebar' interface FeedProps { recentArticles: Shout[] reactions: Reaction[] } const AUTHORSHIP_REACTIONS = [ ReactionKind.Accept, ReactionKind.Reject, ReactionKind.Propose, ReactionKind.Ask ] export const FeedPage = (props: FeedProps) => { const [getPage, setPage] = createSignal(1) // state const { getSortedArticles: articles } = useArticlesStore({ sortedArticles: props.articles }) const reactions = useReactionsStore(props.reactions) const { // getAuthorEntities: authorsBySlug, getSortedAuthors: authors } = useAuthorsStore() // test if it catches preloaded authors const auth = useStore(session) // derived const topReactions = createMemo(() => sortBy(reactions(), byCreated)) // note this became synthetic // methods const expectingFocus = createMemo(() => { // 1 co-author notifications needs // TODO: list of articles where you are co-author // TODO: preload proposals // TODO: (maybe?) and changes history console.debug(reactions().filter((r) => r.kind in AUTHORSHIP_REACTIONS)) const loadMore = () => { setPage(getPage() + 1) //const size = props['size'] || 50 //const page = (props.page || 1) + 1 // TODO: loadFeed({ page, size }) } createEffect(() => { loadRecentArticles({ page: getPage() }) }) return ( <>
0}> {(article) => }

{t('Popular authors')}

{t('All authors')}
{/*FIXME NOW*/} {/*
    */} {/* */} {/* {(author) => (*/} {/*
  • */} {/* */} {/*
  • */} {/* )}*/} {/*
    */} {/*
*/} {(article) => }

) }