diff --git a/src/components/dashboard/AvatarForm.tsx b/src/components/dashboard/AvatarForm.tsx index b54101e2..a7d0970a 100644 --- a/src/components/dashboard/AvatarForm.tsx +++ b/src/components/dashboard/AvatarForm.tsx @@ -26,7 +26,7 @@ const AvatarEditorModal: React.FC<{ // Get cropped image if (editorRef.current) { const fromCanvas = editorRef.current?.getImage() - let blob: Blob | null = null + let blob: Blob | null try { const toCanvas = document.createElement("canvas") toCanvas.width = 460 @@ -56,7 +56,7 @@ const AvatarEditorModal: React.FC<{ } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.isSuccess, updateSite.isError]) + }, [updateSite.isSuccess, updateSite.isError, setIsOpen]) return ( { if (likeCursor && page?.id) { @@ -183,7 +183,7 @@ export const PostFooter: React.FC<{ setMintList(mints.data.list || []) setMintCursor(mints.data.cursor || "") } - }, [mints.isSuccess]) + }, [mints.isSuccess, mints.data]) const loadMoreMints = async () => { if (mintCursor && page?.id) { diff --git a/src/components/site/SiteHeader.tsx b/src/components/site/SiteHeader.tsx index 33334df2..084fa103 100644 --- a/src/components/site/SiteHeader.tsx +++ b/src/components/site/SiteHeader.tsx @@ -12,7 +12,6 @@ import { useEffect, useState } from "react" import toast from "react-hot-toast" import { useGetSubscription, - useGetSiteSubscriptions, useSubscribeToSite, useUnsubscribeFromSite, useGetUserSites, @@ -131,11 +130,13 @@ export const SiteHeader: React.FC<{ ) subscribeToSite.reset() } - }, [subscribeToSite.isError, subscribeToSite.data?.code]) - - const leftLinks: HeaderLinkType[] = site?.navigation?.find(nav => nav.url === "/") ? - site.navigation : [{ label: "Home", url: "/" }, ...(site?.navigation || [])] + }, [subscribeToSite.isError, subscribeToSite.data?.code, subscribeToSite]) + const leftLinks: HeaderLinkType[] = site?.navigation?.find( + (nav) => nav.url === "/", + ) + ? site.navigation + : [{ label: "Home", url: "/" }, ...(site?.navigation || [])] const moreMenuItems = [ { @@ -167,7 +168,7 @@ export const SiteHeader: React.FC<{ setSiteSubscriptionList(subscriptions.list || []) setCursor(subscriptions.cursor) } - }, [subscriptions]) + }, [subscriptions, siteSubscriptionList.length]) const loadMoreSubscriptions = async () => { if (cursor) { diff --git a/src/pages/dashboard/[subdomain]/editor.tsx b/src/pages/dashboard/[subdomain]/editor.tsx index 6fd99f07..c11a23ed 100644 --- a/src/pages/dashboard/[subdomain]/editor.tsx +++ b/src/pages/dashboard/[subdomain]/editor.tsx @@ -2,7 +2,7 @@ import { type EditorView } from "@codemirror/view" import clsx from "clsx" import dayjs from "dayjs" import { useRouter } from "next/router" -import { ChangeEvent, useCallback, useEffect, useMemo, useState } from "react" +import { ChangeEvent, useCallback, useEffect, useState } from "react" import toast from "react-hot-toast" import { toolbars } from "~/editor" import { DashboardLayout } from "~/components/dashboard/DashboardLayout" @@ -16,7 +16,7 @@ import { useUploadFile } from "~/hooks/useUploadFile" import { inLocalTimezone } from "~/lib/date" import { getSiteLink } from "~/lib/helpers" import { getPageVisibility } from "~/lib/page-helpers" -import { PageVisibilityEnum, Note } from "~/lib/types" +import { PageVisibilityEnum } from "~/lib/types" import { useGetPage, useCreateOrUpdatePage } from "~/queries/page" import { useGetSite } from "~/queries/site" import { getStorage, setStorage, delStorage } from "~/lib/storage" @@ -50,7 +50,7 @@ export default function SubdomainEditor() { setDraftKey(`draft-${subdomain}-${pageId}`) } } - }, [subdomain, pageId]) + }, [subdomain, pageId, queryClient]) const site = useGetSite(subdomain) diff --git a/src/pages/dashboard/[subdomain]/settings/css.tsx b/src/pages/dashboard/[subdomain]/settings/css.tsx index 4d22fffe..4eb5cbd9 100644 --- a/src/pages/dashboard/[subdomain]/settings/css.tsx +++ b/src/pages/dashboard/[subdomain]/settings/css.tsx @@ -1,12 +1,11 @@ import { useRouter } from "next/router" import { useEffect, useState } from "react" -import { useForm } from "react-hook-form" import toast from "react-hot-toast" import { DashboardLayout } from "~/components/dashboard/DashboardLayout" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { Button } from "~/components/ui/Button" import { useGetSite, useUpdateSite } from "~/queries/site" -import Editor, { DiffEditor, useMonaco, loader } from "@monaco-editor/react" +import Editor from "@monaco-editor/react" import { FieldLabel } from "~/components/ui/FieldLabel" export default function SettingsDomainsPage() { @@ -45,7 +44,6 @@ export default function SettingsDomainsPage() { } }, [site.data, site.isSuccess, css, hasSet]) - const title = "Site Settings" return ( diff --git a/src/pages/dashboard/[subdomain]/settings/domains.tsx b/src/pages/dashboard/[subdomain]/settings/domains.tsx index e3146545..e1c90b5b 100644 --- a/src/pages/dashboard/[subdomain]/settings/domains.tsx +++ b/src/pages/dashboard/[subdomain]/settings/domains.tsx @@ -51,7 +51,7 @@ export default function SettingsDomainsPage() { } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.data?.code]) + }, [updateSite, router]) const [hasSet, setHasSet] = useState(false) useEffect(() => { @@ -61,9 +61,8 @@ export default function SettingsDomainsPage() { form.setValue("custom_domain", site.data.custom_domain || "") setCustomDomain(site.data.custom_domain || "") } - }, [form, site.data, site.isSuccess, customDomain]) + }, [form, site.data, site.isSuccess, customDomain, hasSet]) - const title = "Site Settings" return ( diff --git a/src/pages/dashboard/[subdomain]/settings/general.tsx b/src/pages/dashboard/[subdomain]/settings/general.tsx index 0391382c..4831decb 100644 --- a/src/pages/dashboard/[subdomain]/settings/general.tsx +++ b/src/pages/dashboard/[subdomain]/settings/general.tsx @@ -1,7 +1,7 @@ import { Button } from "~/components/ui/Button" import { Input } from "~/components/ui/Input" import { AvatarForm } from "~/components/dashboard/AvatarForm" -import { useEffect, useState } from "react" +import { useEffect } from "react" import toast from "react-hot-toast" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { useRouter } from "next/router" diff --git a/src/pages/dashboard/[subdomain]/settings/navigation.tsx b/src/pages/dashboard/[subdomain]/settings/navigation.tsx index 0399a273..333227e7 100644 --- a/src/pages/dashboard/[subdomain]/settings/navigation.tsx +++ b/src/pages/dashboard/[subdomain]/settings/navigation.tsx @@ -5,7 +5,7 @@ import toast from "react-hot-toast" import { SettingsLayout } from "~/components/dashboard/SettingsLayout" import { useRouter } from "next/router" import { DashboardLayout } from "~/components/dashboard/DashboardLayout" -import { SiteNavigationItem, Profile } from "~/lib/types" +import { SiteNavigationItem } from "~/lib/types" import { nanoid } from "nanoid" import { ReactSortable } from "react-sortablejs" import equal from "fast-deep-equal" diff --git a/src/pages/dashboard/new-site.tsx b/src/pages/dashboard/new-site.tsx index 3f9f04ab..369aaaee 100644 --- a/src/pages/dashboard/new-site.tsx +++ b/src/pages/dashboard/new-site.tsx @@ -1,4 +1,3 @@ -import Link from "next/link" import { useRouter } from "next/router" import { useEffect, useState } from "react" import { useForm } from "react-hook-form" @@ -119,7 +118,7 @@ export default function NewSitePage() { } else if (createSite.isError) { toast.error("Failed to create site") } - }, [createSite.isSuccess, createSite.isError, router]) + }, [createSite, router]) return ( <> diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 52b384b1..a713b9d9 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -5,7 +5,6 @@ import { MainLayout } from "~/components/main/MainLayout" import { UniLink } from "~/components/ui/UniLink" import { FLY_REGION } from "~/lib/env.server" import { useAccount } from "wagmi" -import { EllipsisHorizontalIcon } from "@heroicons/react/20/solid" import { LoveIcon } from "~/components/icons/LoveIcon" import { BlockchainIcon } from "~/components/icons/BlockchainIcon" import { LaughIcon } from "~/components/icons/LaughIcon" diff --git a/src/queries/page.server.ts b/src/queries/page.server.ts index 3f7b1a33..955f7218 100644 --- a/src/queries/page.server.ts +++ b/src/queries/page.server.ts @@ -6,7 +6,7 @@ export const fetchGetPage = async ( input: Parameters[0], queryClient: QueryClient, ) => { - const key = ["getPage", input.page, input] + const key = ["getPage", input.site, input.page] return await queryClient.fetchQuery(key, async () => { return cacheGet(key, () => pageModel.getPage(input)) }) @@ -16,7 +16,7 @@ export const prefetchGetPagesBySite = async ( input: Parameters[0], queryClient: QueryClient, ) => { - const key = ["getPagesBySite", input.site, input] + const key = ["getPagesBySite", input.site] await queryClient.prefetchQuery(key, async () => { return cacheGet(key, () => pageModel.getPagesBySite(input)) }) @@ -26,7 +26,7 @@ export const fetchGetPagesBySite = async ( input: Parameters[0], queryClient: QueryClient, ) => { - const key = ["getPagesBySite", input.site, input] + const key = ["getPagesBySite", input.site] return await queryClient.fetchQuery(key, async () => { return cacheGet(key, () => pageModel.getPagesBySite(input)) }) diff --git a/src/queries/site.server.ts b/src/queries/site.server.ts index 16e9b5d7..03b96ab8 100644 --- a/src/queries/site.server.ts +++ b/src/queries/site.server.ts @@ -23,7 +23,7 @@ export const prefetchGetSiteSubscriptions = async ( input: Parameters[0], queryClient: QueryClient, ) => { - const key = ["getSiteSubscriptions", input] + const key = ["getSiteSubscriptions", input.siteId] await queryClient.prefetchQuery(key, async () => { return cacheGet(key, () => siteModel.getSiteSubscriptions(input)) })