use-following-data

This commit is contained in:
Untone 2024-04-08 16:14:19 +03:00
parent 79961b7f47
commit aeb42de908
2 changed files with 12 additions and 14 deletions

View File

@ -29,18 +29,16 @@ export const ProfileSubscriptions = () => {
const [searchQuery, setSearchQuery] = createSignal('')
createEffect(() => {
if (subscriptions()) {
const { authors, topics } = subscriptions()
const fdata = [...authors, ...topics]
if (fdata) {
setFollowing(fdata)
if (subscriptionFilter() === 'authors') {
setFiltered(fdata.filter((s) => 'name' in s))
} else if (subscriptionFilter() === 'topics') {
setFiltered(fdata.filter((s) => 'title' in s))
} else {
setFiltered(fdata)
}
const { authors, topics } = subscriptions
if (authors || topics) {
const fdata = [...(authors || []), ...(topics || [])]
setFollowing(fdata)
if (subscriptionFilter() === 'authors') {
setFiltered(fdata.filter((s) => 'name' in s))
} else if (subscriptionFilter() === 'topics') {
setFiltered(fdata.filter((s) => 'title' in s))
} else {
setFiltered(fdata)
}
}
})

View File

@ -10,7 +10,7 @@ interface FollowingContextType {
loading: Accessor<boolean>
followers: Accessor<Array<Author>>
subscriptions: AuthorFollowsResult
setSubscriptions: (subscriptions: AuthorFollows) => void
setSubscriptions: (subscriptions: AuthorFollowsResult) => void
setFollowing: (what: FollowingEntity, slug: string, value: boolean) => void
loadSubscriptions: () => void
follow: (what: FollowingEntity, slug: string) => Promise<void>
@ -33,7 +33,7 @@ const EMPTY_SUBSCRIPTIONS: AuthorFollowsResult = {
export const FollowingProvider = (props: { children: JSX.Element }) => {
const [loading, setLoading] = createSignal<boolean>(false)
const [followers, setFollowers] = createSignal<Array<Author>>([])
const [subscriptions, setSubscriptions] = createStore<AuthorFollows>(EMPTY_SUBSCRIPTIONS)
const [subscriptions, setSubscriptions] = createStore<AuthorFollowsResult>(EMPTY_SUBSCRIPTIONS)
const { author, session } = useSession()
const fetchData = async () => {