import { createMemo, For, Show } from 'solid-js' import type { Shout, Reaction } 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 { AuthorCard } from '../Author/Card' import { t } from '../../utils/intl' import { useStore } from '@nanostores/solid' import { FeedSidebar } from '../Feed/Sidebar' 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 { useTopicsStore } from '../../stores/zine/topics' interface FeedProps { articles: Shout[] reactions: Reaction[] limit?: number offset?: number } // const AUTHORSHIP_REACTIONS = [ // ReactionKind.Accept, // ReactionKind.Reject, // ReactionKind.Propose, // ReactionKind.Ask // ] export const FeedPage = (props: FeedProps) => { // state const { getSortedArticles: articles } = useArticlesStore({ sortedArticles: props.articles }) const reactions = useReactionsStore(props.reactions) const { getTopAuthors, getSortedAuthors: authors } = useAuthorsStore() const { getTopTopics } = useTopicsStore() const auth = useStore(session) const topReactions = createMemo(() => sortBy(reactions(), byCreated)) // 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)) // // // 2 community self-regulating mechanics // // TODO: query all new posts to be rated for publishing // // TODO: query all reactions where user is in authors list // return [] // }) // eslint-disable-next-line unicorn/consistent-function-scoping const loadMore = () => { const limit = props.limit || 50 const offset = props.offset || 0 loadRecentArticles({ limit, offset }) } return ( <>
0}> {(article) => }

{t('Popular authors')}

{t('All authors')}
    {(author) => (
  • )}
{(article) => }

) }