import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, onMount } from 'solid-js' import { useFollowing } from '../../../context/following' import { useLocalize } from '../../../context/localize' import { useSession } from '../../../context/session' import { apiClient } from '../../../graphql/client/core' import { Author as AuthorType, Topic } from '../../../graphql/schema/core.gen' import { SubscriptionFilter } from '../../../pages/types' import { dummyFilter } from '../../../utils/dummyFilter' // TODO: refactor styles import { isAuthor } from '../../../utils/isAuthor' import { AuthorBadge } from '../../Author/AuthorBadge' import { ProfileSettingsNavigation } from '../../Nav/ProfileSettingsNavigation' import { TopicBadge } from '../../Topic/TopicBadge' import { Loading } from '../../_shared/Loading' import { SearchField } from '../../_shared/SearchField' import styles from '../../../pages/profile/Settings.module.scss' import stylesSettings from '../../../styles/FeedSettings.module.scss' export const ProfileSubscriptions = () => { const { t, lang } = useLocalize() const { author, session } = useSession() const { subscriptions } = useFollowing() const [following, setFollowing] = (createSignal < Array < AuthorType) | (Topic >> []) const [filtered, setFiltered] = (createSignal < Array < AuthorType) | (Topic >> []) const [subscriptionFilter, setSubscriptionFilter] = createSignal < SubscriptionFilter > 'all' 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) } } } }) createEffect(() => { if (searchQuery()) { setFiltered(dummyFilter(following(), searchQuery(), lang())) } }) return (

{t('My subscriptions')}

{t('Here you can manage all your Discours subscriptions')}

}>
setSearchQuery(value)} class={styles.searchField} variant="bordered" />
{(followingItem) => (
{isAuthor(followingItem) ? ( ) : ( )}
)}
) }