From b519c3d1b9e1cda8f7d6a05dfa518c9b83ae6ff4 Mon Sep 17 00:00:00 2001 From: juliopavila Date: Mon, 27 May 2024 16:33:37 -0300 Subject: [PATCH] bug: fix publication slug usage --- .../contexts/publication.context.tsx | 1 - .../publications/hooks/useArticles.ts | 22 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/app/src/services/publications/contexts/publication.context.tsx b/packages/app/src/services/publications/contexts/publication.context.tsx index d4f46579..467a9a65 100644 --- a/packages/app/src/services/publications/contexts/publication.context.tsx +++ b/packages/app/src/services/publications/contexts/publication.context.tsx @@ -24,7 +24,6 @@ const PublicationProvider = ({ children }: PublicationProviderProps) => { undefined, ) const [removePublicationImage, setRemovePublicationImage] = useState(false) - const getPublicationId = async (publicationSlug: string) => { if (!isConnected && publicationSlug.includes(".eth" || ".lens")) { return open() diff --git a/packages/app/src/services/publications/hooks/useArticles.ts b/packages/app/src/services/publications/hooks/useArticles.ts index 2c70bc3c..f9e722f9 100644 --- a/packages/app/src/services/publications/hooks/useArticles.ts +++ b/packages/app/src/services/publications/hooks/useArticles.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useState } from "react" import { useQuery } from "urql" import { useNotification } from "@/hooks/useNotification" import { Article } from "@/models/publication" -import { useArticleContext } from "@/services/publications/contexts" +import { useArticleContext, usePublicationContext } from "@/services/publications/contexts" import { GET_ARTICLES_QUERY, GET_ARTICLE_QUERY } from "@/services/publications/queries" import { useWalletContext } from "@/connectors/WalletProvider" import { TransactionResult, TransactionStatus, useExecuteTransaction } from "@/hooks/useContract" @@ -32,7 +32,9 @@ const useArticles = () => { const openNotification = useNotification() const { encodeIpfsHash, remotePin } = useIPFSContext() const { saveArticle, setArticles } = useArticleContext() - const { publicationSlug } = useParams<{ publicationSlug: string }>() + const { getPublicationId } = usePublicationContext() + const { publicationSlug: pSlug } = useParams<{ publicationSlug: string }>() + const [publicationSlug, setPublicationSlug] = useState("") const [data, setData] = useState(undefined) const { signer } = useWalletContext() const [txLoading, setTxLoading] = useState({ @@ -52,6 +54,16 @@ const useArticles = () => { Action.ARTICLE, ) + useEffect(() => { + if (pSlug) { + const fetchPublicationId = async () => { + const publicationId = await getPublicationId(pSlug as string) + setPublicationSlug(publicationId ?? pSlug) + } + fetchPublicationId() + } + }, [pSlug, getPublicationId]) + const { isIndexed: newArticleIndexed } = useMonitorTransaction( GET_ARTICLE_QUERY, { @@ -163,7 +175,8 @@ const useArticles = () => { } const createNewArticle = async (publicationId: string, fields: ArticleFormSchema) => { - const body = await generateArticleBody(publicationId, fields, encodeIpfsHash, !!isDirectlyOnChain) + const pId = (await getPublicationId(publicationId)) ?? publicationId + const body = await generateArticleBody(pId, fields, encodeIpfsHash, !!isDirectlyOnChain) console.log("body", body) handleTransaction({ ...body.articleBody, imgHashes: body.imgHashes }, "create", (result) => { result.transactionIdTabulaFormat && setNewArticleId(result.transactionIdTabulaFormat) @@ -171,7 +184,8 @@ const useArticles = () => { } const updateArticle = async (publicationId: string, fields: UpdateArticleFormSchema) => { - const body = await generateUpdateArticleBody(publicationId, fields, encodeIpfsHash, !!isDirectlyOnChain) + const pId = (await getPublicationId(publicationId)) ?? publicationId + const body = await generateUpdateArticleBody(pId, fields, encodeIpfsHash, !!isDirectlyOnChain) handleTransaction({ ...body.articleBody, imgHashes: body.imgHashes }, "update", () => { setArticleIdToUpdate(fields.id) setLastUpdated(parseInt(fields.lastUpdated ?? ""))