import useLinks from "@/hooks/useLinks"; import MainLayout from "@/layouts/MainLayout"; import useLinkStore from "@/store/links"; import React, { useEffect, useState } from "react"; import PageHeader from "@/components/PageHeader"; import { Sort, ViewMode } from "@/types/global"; import CardView from "@/components/LinkViews/Layouts/CardView"; import ListView from "@/components/LinkViews/Layouts/ListView"; import { useRouter } from "next/router"; import MasonryView from "@/components/LinkViews/Layouts/MasonryView"; import { useTranslation } from "next-i18next"; import getServerSideProps from "@/lib/client/getServerSideProps"; import LinkListOptions from "@/components/LinkListOptions"; export default function PinnedLinks() { const { t } = useTranslation(); const { links } = useLinkStore(); const [viewMode, setViewMode] = useState( localStorage.getItem("viewMode") || ViewMode.Card ); const [sortBy, setSortBy] = useState(Sort.DateNewestFirst); useLinks({ sort: sortBy, pinnedOnly: true }); const router = useRouter(); const [editMode, setEditMode] = useState(false); useEffect(() => { if (editMode) return setEditMode(false); }, [router]); const linkView = { [ViewMode.Card]: CardView, [ViewMode.List]: ListView, [ViewMode.Masonry]: MasonryView, }; // @ts-ignore const LinkComponent = linkView[viewMode]; return (
{links.some((e) => e.pinnedBy && e.pinnedBy[0]) ? ( ) : (

{t("pin_favorite_links_here")}

{t("pin_favorite_links_here_desc")}

)}
); } export { getServerSideProps };