import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on } from 'solid-js' import { FollowsFilter, useFollowing } from '../../../context/following' import { useLocalize } from '../../../context/localize' import { Author, Topic } from '../../../graphql/schema/core.gen' import { dummyFilter } from '../../../utils/dummyFilter' 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 { follows } = useFollowing() const [flatFollows, setFlatFollows] = createSignal>([]) const [filtered, setFiltered] = createSignal>([]) const [followsFilter, setFollowsFilter] = createSignal('all') const [searchQuery, setSearchQuery] = createSignal('') createEffect(() => setFlatFollows([...(follows?.authors || []), ...(follows?.topics || [])])) createEffect( on([flatFollows, followsFilter], ([flat, mode]) => { if (mode === 'authors') { setFiltered(flat.filter((s) => 'name' in s)) } else if (mode === 'topics') { setFiltered(flat.filter((s) => 'title' in s)) } else { setFiltered(flat) } }) ) createEffect(() => { if (searchQuery()) { setFiltered(dummyFilter(flatFollows(), 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) ? ( ) : ( )}
)}
) }