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, 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>([]); const [filtered, setFiltered] = createSignal>([]); const [subscriptionFilter, setSubscriptionFilter] = createSignal("all"); const [searchQuery, setSearchQuery] = createSignal(""); createEffect(() => { 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); } } }); 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) ? ( ) : ( )}
)}
); };