From 9116f985c47534cbd7e1e00034de4d1c19063768 Mon Sep 17 00:00:00 2001 From: qfdk Date: Sat, 15 Oct 2022 00:03:30 +0200 Subject: [PATCH 1/6] fix: waring message in compilation --- src/components/dashboard/AvatarForm.tsx | 4 ++-- src/components/site/PostFooter.tsx | 4 ++-- src/components/site/SiteHeader.tsx | 13 +++++++------ src/pages/dashboard/[subdomain]/editor.tsx | 16 ++++++++++++---- src/pages/dashboard/[subdomain]/settings/css.tsx | 6 ++---- .../dashboard/[subdomain]/settings/domains.tsx | 5 ++--- .../dashboard/[subdomain]/settings/general.tsx | 4 ++-- .../[subdomain]/settings/navigation.tsx | 4 ++-- src/pages/dashboard/new-site.tsx | 3 +-- 9 files changed, 32 insertions(+), 27 deletions(-) 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 e4573aa3..7b1253f8 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" @@ -49,7 +49,7 @@ export default function SubdomainEditor() { setDraftKey(`draft-${subdomain}-${pageId}`) } } - }, [subdomain, pageId]) + }, [subdomain, pageId, queryClient]) const site = useGetSite(subdomain) @@ -147,7 +147,15 @@ export default function SubdomainEditor() { toast.error("Error: " + createOrUpdatePage.data?.message) } } - }, [createOrUpdatePage.isSuccess]) + }, [ + createOrUpdatePage, + draftKey, + isPost, + queryClient, + router, + subdomain, + values.published, + ]) const handleDropFile = useCallback( async (file: File, view: EditorView) => { diff --git a/src/pages/dashboard/[subdomain]/settings/css.tsx b/src/pages/dashboard/[subdomain]/settings/css.tsx index 4d22fffe..20dc2362 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() { @@ -35,7 +34,7 @@ export default function SettingsDomainsPage() { } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.isSuccess, updateSite.isError]) + }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) const [hasSet, setHasSet] = useState(false) useEffect(() => { @@ -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..a739ea5d 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" @@ -45,7 +45,7 @@ export default function SiteSettingsGeneralPage() { } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.isSuccess, updateSite.isError]) + }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) useEffect(() => { if (site.data) { diff --git a/src/pages/dashboard/[subdomain]/settings/navigation.tsx b/src/pages/dashboard/[subdomain]/settings/navigation.tsx index 0399a273..f72de275 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" @@ -113,7 +113,7 @@ export default function SiteSettingsNavigationPage() { } else if (updateSite.isError) { toast.error("Failed to save") } - }, [updateSite.isSuccess, updateSite.isError]) + }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) const removeItem: RemoveItem = (id) => { setItems((items) => items.filter((item) => item.id !== id)) 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 ( <> From e2684e6df18aab10cc1e0939e45c96a33a49f994 Mon Sep 17 00:00:00 2001 From: qfdk Date: Sat, 15 Oct 2022 09:40:23 +0200 Subject: [PATCH 2/6] fix: optimisation redis key --- src/pages/index.tsx | 1 - src/queries/page.server.ts | 6 +++--- src/queries/site.server.ts | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/pages/index.tsx b/src/pages/index.tsx index e020ec9f..c87bfcb0 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..f2bc6419 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.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)) }) From 76b8473601eb8b2bd876c8bf22188b73af2d2ec4 Mon Sep 17 00:00:00 2001 From: qfdk Date: Sat, 15 Oct 2022 22:48:40 +0200 Subject: [PATCH 3/6] fix: test to de-active redirect to home page ... --- src/components/site/SiteLayout.tsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/components/site/SiteLayout.tsx b/src/components/site/SiteLayout.tsx index 55424fa1..ea8c4d59 100644 --- a/src/components/site/SiteLayout.tsx +++ b/src/components/site/SiteLayout.tsx @@ -34,17 +34,17 @@ export const SiteLayout: React.FC = ({ children, title }) => { siteId: domainOrSubdomain, }) - useEffect(() => { - if (site.data) { - if ( - window.location.host.split(".").slice(-2).join(".") !== OUR_DOMAIN && - window.location.host !== site.data?.custom_domain && - IS_PROD - ) { - window.location.href = SITE_URL - } - } - }, [site.isSuccess, site.data]) + // useEffect(() => { + // if (site.data) { + // if ( + // window.location.host.split(".").slice(-2).join(".") !== OUR_DOMAIN && + // window.location.host !== site.data?.custom_domain && + // IS_PROD + // ) { + // window.location.href = SITE_URL + // } + // } + // }, [site.isSuccess, site.data]) return ( <> From bc0630ce85db2ee5c873e971ecf9b45bb3ee3ae2 Mon Sep 17 00:00:00 2001 From: qfdk Date: Sat, 15 Oct 2022 22:51:26 +0200 Subject: [PATCH 4/6] fix: undo test to de-active redirect to home page ... --- src/components/site/SiteLayout.tsx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/components/site/SiteLayout.tsx b/src/components/site/SiteLayout.tsx index ea8c4d59..55424fa1 100644 --- a/src/components/site/SiteLayout.tsx +++ b/src/components/site/SiteLayout.tsx @@ -34,17 +34,17 @@ export const SiteLayout: React.FC = ({ children, title }) => { siteId: domainOrSubdomain, }) - // useEffect(() => { - // if (site.data) { - // if ( - // window.location.host.split(".").slice(-2).join(".") !== OUR_DOMAIN && - // window.location.host !== site.data?.custom_domain && - // IS_PROD - // ) { - // window.location.href = SITE_URL - // } - // } - // }, [site.isSuccess, site.data]) + useEffect(() => { + if (site.data) { + if ( + window.location.host.split(".").slice(-2).join(".") !== OUR_DOMAIN && + window.location.host !== site.data?.custom_domain && + IS_PROD + ) { + window.location.href = SITE_URL + } + } + }, [site.isSuccess, site.data]) return ( <> From c39832a6c9393ac6cd2eba4a79ca8fec8c344f17 Mon Sep 17 00:00:00 2001 From: qfdk Date: Mon, 17 Oct 2022 08:56:21 +0200 Subject: [PATCH 5/6] fix: code review #29 https://github.com/Crossbell-Box/xLog/pull/29 --- src/pages/dashboard/[subdomain]/editor.tsx | 10 +--------- src/pages/dashboard/[subdomain]/settings/css.tsx | 2 +- src/pages/dashboard/[subdomain]/settings/general.tsx | 2 +- .../dashboard/[subdomain]/settings/navigation.tsx | 2 +- src/queries/page.server.ts | 2 +- 5 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/pages/dashboard/[subdomain]/editor.tsx b/src/pages/dashboard/[subdomain]/editor.tsx index 5154d93d..c11a23ed 100644 --- a/src/pages/dashboard/[subdomain]/editor.tsx +++ b/src/pages/dashboard/[subdomain]/editor.tsx @@ -148,15 +148,7 @@ export default function SubdomainEditor() { toast.error("Error: " + createOrUpdatePage.data?.message) } } - }, [ - createOrUpdatePage, - draftKey, - isPost, - queryClient, - router, - subdomain, - values.published, - ]) + }, [createOrUpdatePage.isSuccess]) const handleDropFile = useCallback( async (file: File, view: EditorView) => { diff --git a/src/pages/dashboard/[subdomain]/settings/css.tsx b/src/pages/dashboard/[subdomain]/settings/css.tsx index 20dc2362..4eb5cbd9 100644 --- a/src/pages/dashboard/[subdomain]/settings/css.tsx +++ b/src/pages/dashboard/[subdomain]/settings/css.tsx @@ -34,7 +34,7 @@ export default function SettingsDomainsPage() { } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) + }, [updateSite.isSuccess, updateSite.isError]) const [hasSet, setHasSet] = useState(false) useEffect(() => { diff --git a/src/pages/dashboard/[subdomain]/settings/general.tsx b/src/pages/dashboard/[subdomain]/settings/general.tsx index a739ea5d..4831decb 100644 --- a/src/pages/dashboard/[subdomain]/settings/general.tsx +++ b/src/pages/dashboard/[subdomain]/settings/general.tsx @@ -45,7 +45,7 @@ export default function SiteSettingsGeneralPage() { } else if (updateSite.isError) { toast.error("Failed to update site") } - }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) + }, [updateSite.isSuccess, updateSite.isError]) useEffect(() => { if (site.data) { diff --git a/src/pages/dashboard/[subdomain]/settings/navigation.tsx b/src/pages/dashboard/[subdomain]/settings/navigation.tsx index f72de275..333227e7 100644 --- a/src/pages/dashboard/[subdomain]/settings/navigation.tsx +++ b/src/pages/dashboard/[subdomain]/settings/navigation.tsx @@ -113,7 +113,7 @@ export default function SiteSettingsNavigationPage() { } else if (updateSite.isError) { toast.error("Failed to save") } - }, [updateSite.isSuccess, updateSite.isError, updateSite.data]) + }, [updateSite.isSuccess, updateSite.isError]) const removeItem: RemoveItem = (id) => { setItems((items) => items.filter((item) => item.id !== id)) diff --git a/src/queries/page.server.ts b/src/queries/page.server.ts index f2bc6419..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] + const key = ["getPage", input.site, input.page] return await queryClient.fetchQuery(key, async () => { return cacheGet(key, () => pageModel.getPage(input)) }) From 408796306b3bf32bc3ba1426a8bd80cedbdc8de5 Mon Sep 17 00:00:00 2001 From: Mayx Date: Mon, 17 Oct 2022 20:20:28 +0800 Subject: [PATCH 6/6] Just Submit --- showcase.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/showcase.json b/showcase.json index 31b24285..20c331ce 100644 --- a/showcase.json +++ b/showcase.json @@ -53,5 +53,6 @@ "kumasanki", "luftmonsch", "ventuss", - "jingfelix" + "jingfelix", + "mayx" ]