fmt
This commit is contained in:
parent
7714977391
commit
30ff30d099
|
@ -154,11 +154,17 @@ export const AuthorView = (props: AuthorViewProps) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// fx to update author's feed
|
// fx to update author's feed
|
||||||
createEffect(on(feedByAuthor, (byAuthor) => {
|
createEffect(
|
||||||
|
on(
|
||||||
|
feedByAuthor,
|
||||||
|
(byAuthor) => {
|
||||||
const feed = byAuthor[props.authorSlug] as Shout[]
|
const feed = byAuthor[props.authorSlug] as Shout[]
|
||||||
if (!feed) return
|
if (!feed) return
|
||||||
setSortedFeed(feed)
|
setSortedFeed(feed)
|
||||||
},{}))
|
},
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
const [loadMoreCommentsHidden, setLoadMoreCommentsHidden] = createSignal(false)
|
const [loadMoreCommentsHidden, setLoadMoreCommentsHidden] = createSignal(false)
|
||||||
const { commentsByAuthor, addReactions } = useReactions()
|
const { commentsByAuthor, addReactions } = useReactions()
|
||||||
|
@ -182,8 +188,21 @@ export const AuthorView = (props: AuthorViewProps) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
createEffect(() => setCurrentTab(params.tab))
|
createEffect(() => setCurrentTab(params.tab))
|
||||||
createEffect(on([author, commented], ([a, ccc]) => a && setLoadMoreCommentsHidden(ccc?.length === a.stat?.comments), {}))
|
createEffect(
|
||||||
createEffect(on([author, feedByAuthor], ([a, feed]) => a && feed[props.authorSlug] && setLoadMoreHidden(feed[props.authorSlug]?.length === a.stat?.shouts), {}))
|
on(
|
||||||
|
[author, commented],
|
||||||
|
([a, ccc]) => a && setLoadMoreCommentsHidden(ccc?.length === a.stat?.comments),
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
createEffect(
|
||||||
|
on(
|
||||||
|
[author, feedByAuthor],
|
||||||
|
([a, feed]) =>
|
||||||
|
a && feed[props.authorSlug] && setLoadMoreHidden(feed[props.authorSlug]?.length === a.stat?.shouts),
|
||||||
|
{}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div class={styles.authorPage}>
|
<div class={styles.authorPage}>
|
||||||
|
@ -245,8 +264,11 @@ export const AuthorView = (props: AuthorViewProps) => {
|
||||||
</div>
|
</div>
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
|
<LoadMoreWrapper
|
||||||
<LoadMoreWrapper loadFunction={loadMoreComments} pageSize={COMMENTS_PER_PAGE} hidden={loadMoreCommentsHidden()}>
|
loadFunction={loadMoreComments}
|
||||||
|
pageSize={COMMENTS_PER_PAGE}
|
||||||
|
hidden={loadMoreCommentsHidden()}
|
||||||
|
>
|
||||||
<div class="wide-container">
|
<div class="wide-container">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-20 col-lg-18">
|
<div class="col-md-20 col-lg-18">
|
||||||
|
@ -276,13 +298,9 @@ export const AuthorView = (props: AuthorViewProps) => {
|
||||||
</Show>
|
</Show>
|
||||||
|
|
||||||
<LoadMoreWrapper loadFunction={loadMore} pageSize={SHOUTS_PER_PAGE} hidden={loadMoreHidden()}>
|
<LoadMoreWrapper loadFunction={loadMore} pageSize={SHOUTS_PER_PAGE} hidden={loadMoreHidden()}>
|
||||||
<For
|
<For each={sortedFeed().filter((_, i) => i % 3 === 0)}>
|
||||||
each={sortedFeed()
|
|
||||||
.filter((_, i) => i % 3 === 0)}
|
|
||||||
>
|
|
||||||
{(_shout, index) => {
|
{(_shout, index) => {
|
||||||
const articles = sortedFeed()
|
const articles = sortedFeed().slice(index() * 3, index() * 3 + 3)
|
||||||
.slice(index() * 3, index() * 3 + 3)
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Switch>
|
<Switch>
|
||||||
|
|
|
@ -68,7 +68,7 @@ export const ReactionsProvider = (props: { children: JSX.Element }) => {
|
||||||
const newCommentsByAuthor = Object.fromEntries(
|
const newCommentsByAuthor = Object.fromEntries(
|
||||||
Object.entries(newReactionsByAuthor).map(([authorId, reactions]) => [
|
Object.entries(newReactionsByAuthor).map(([authorId, reactions]) => [
|
||||||
authorId,
|
authorId,
|
||||||
reactions.filter((x: Reaction) => x.kind === ReactionKind.Comment),
|
reactions.filter((x: Reaction) => x.kind === ReactionKind.Comment)
|
||||||
])
|
])
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -105,7 +105,9 @@ export default function AuthorPage(props: RouteSectionProps<AuthorPageProps>) {
|
||||||
)
|
)
|
||||||
|
|
||||||
// author's shouts
|
// author's shouts
|
||||||
const authorShouts = createAsync(async () => props.data.articles as Shout[] || await fetchAuthorShouts(props.params.slug, 0))
|
const authorShouts = createAsync(
|
||||||
|
async () => (props.data.articles as Shout[]) || (await fetchAuthorShouts(props.params.slug, 0))
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ErrorBoundary fallback={(_err) => <FourOuFourView />}>
|
<ErrorBoundary fallback={(_err) => <FourOuFourView />}>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user