From f9e493306cea815724a99d2b9730335531ef8b39 Mon Sep 17 00:00:00 2001 From: imhson Date: Fri, 30 Aug 2024 11:05:21 +0700 Subject: [PATCH] update --- public/config.json | 30 +++---- src/components/pages/artist/Contests.tsx | 72 ++++++++++++---- src/services/index.ts | 102 ++++++++++++----------- 3 files changed, 125 insertions(+), 79 deletions(-) diff --git a/public/config.json b/public/config.json index d96b8f62..446723c0 100644 --- a/public/config.json +++ b/public/config.json @@ -1,26 +1,26 @@ { - "REDIRECT_URL": "https://staging.punkga.me", - "CHAIN_ID": "aura_6321-3", + "REDIRECT_URL": "https://punkga.me", + "CHAIN_ID": "aura_6322-2", "CHAIN_INFO": { - "chainId": "aura_6321-3", - "evmChainId": 6321, - "chainName": "Aura Euphoria TestNet", - "rpc": ["https://rpc.euphoria.aura.network", "https://jsonrpc.euphoria.aura.network"], - "indexerV2": "https://indexer-v2.staging.aurascan.io/api/v2/graphql", + "chainId": "aura_6322-2", + "chainName": "Aura Mainnet", + "evmChainId": 6322, + "rpc": ["https://rpc.aura.network", "https://jsonrpc.aura.network"], + "indexerV2": "https://horoscope.aura.network/api/v2/graphql", "nativeCurrency": { "name": "Aura", - "symbol": "EAURA", + "symbol": "AURA", "decimals": 18 }, - "explorer": "https://euphoria.aurascan.io" + "explorer": "https://aurascan.io/" }, - "API_URL": "https://hasura.staging.punkga.me", - "AUTHORIZER_URL": "https://auth.staging.punkga.me", + "API_URL": "https://hasura.punkga.me", + "AUTHORIZER_URL": "https://auth.punkga.me", "AUTHORIZER_CLIENT_ID": "06c9c437-15cd-4240-b435-5d16206b46c6", - "ADMIN_URL": "https://admin.staging.punkga.me", - "REST_API_URL": "https://api.staging.punkga.me", + "ADMIN_URL": "https://admin.punkga.me", + "REST_API_URL": "https://api.punkga.me", "IN_MAINTENANCE_MODE": false, - "GTM_ID": "GTM-MMT4K22K", - "SEEKHYPE_URL": "https://staging.seekhype.io/", + "GTM_ID": "GTM-5N2X4HSN", + "SEEKHYPE_URL": "https://seekhype.io/", "WALLET_CONNECT_PROJECT_ID": "ec40291093ad80fa0def54b1fb44c8ef" } diff --git a/src/components/pages/artist/Contests.tsx b/src/components/pages/artist/Contests.tsx index b4bfcf26..c78cba79 100644 --- a/src/components/pages/artist/Contests.tsx +++ b/src/components/pages/artist/Contests.tsx @@ -16,6 +16,7 @@ export default function Contests({ id }) { const [index, setIndex] = useState(1) const [open, setOpen] = useState(false) const [artworkPage, setArtworkPage] = useState(1) + const [selectedArtwork, setSelectedArtwork] = useState(null) const { t } = useTranslation() const { locale } = useRouter() const [selectedContest, setSelectedContest] = useState() @@ -34,7 +35,6 @@ export default function Contests({ id }) { }, ({ id, selectedContestId }) => (id && selectedContestId ? getContestMangaAndArtwork(id, selectedContestId) : null) ) - console.log(contestData) if (isLoading) return (
@@ -42,6 +42,18 @@ export default function Contests({ id }) {
) + const prevHandler = () => { + const idx = contestData?.artworks?.artworks?.findIndex((artwork) => artwork.url == selectedArtwork.url) + if (contestData?.artworks?.artworks[idx - 1]) { + setSelectedArtwork(contestData?.artworks?.artworks[idx - 1]) + } + } + const nextHandler = () => { + const idx = contestData?.artworks?.artworks?.findIndex((artwork) => artwork.url == selectedArtwork.url) + if (contestData?.artworks?.artworks[idx + 1]) { + setSelectedArtwork(contestData?.artworks?.artworks[idx + 1]) + } + } if (contestData) { return (
@@ -79,7 +91,7 @@ export default function Contests({ id }) {
{ - setIndex(index) + setSelectedArtwork(artwork) setOpen(true) }}>
)} - - - {contestData?.artworks?.artworks?.map((artwork, index) => ( - - - - ))} - + +
+ +
+
+ + + +
+
+ + + +
+
+
) diff --git a/src/services/index.ts b/src/services/index.ts index b5730c31..11f7bf14 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -726,54 +726,60 @@ export const getContests = async (id: string) => { return { contests: contests, count } } export const getContestMangaAndArtwork = async (id: string, contestId: string) => { - const { data: mangaData } = await axios.get( - `${getConfig().API_URL}/api/rest/public/creators/${id}/contests/${contestId}/manga` - ) - const { data: artworksData } = await axios.get( - `${getConfig().API_URL}/api/rest/public/creators/${id}/contests/${contestId}/artworks` - ) - return { - mangas: mangaData.manga?.map((m: any) => { - const response = { - id: m.id, - slug: m.slug, - image: m.poster, - status: { - type: COMIC_STATUS[formatStatus(m.status)], - text: formatStatus(m.status), - }, - authors: m.manga_creators?.map((c: any) => ({ - id: c.creator?.isActive ? c.creator?.id : undefined, - slug: c.creator?.isActive ? c.creator?.slug : undefined, - name: c.creator?.isActive ? c.creator?.pen_name || c.creator?.name : 'Unknown creator', - })), - views: m.manga_total_views?.views || 0, - likes: m.manga_total_likes?.likes || 0, - subscriptions: m.manga_subscribers_aggregate?.aggregate?.count || 0, - latestChap: { - number: m.chapters?.[0]?.chapter_number, - id: m.chapters?.[0]?.id, - }, - tags: m.manga_tags.map(({ tag }: any) => { - const r = {} - LANGUAGE.forEach((l) => { - const tagLanguage = tag.tag_languages.find((tl) => tl.language_id == l.id) || tag.tag_languages[0] - r[l.shortLang] = tagLanguage.value - }) - return r - }), - } - LANGUAGE.forEach((language) => { - const l = - m.manga_languages.find((ml) => ml.language_id == language.id) || - m.manga_languages.find((ml) => ml.is_main_language) - response[language.shortLang] = { - title: l ? l?.title : 'Unknown title', - description: l ? l?.description : 'Unknown description', + try { + const { data: mangaData } = await axios.get( + `${getConfig().API_URL}/api/rest/public/creators/${id}/contests/${contestId}/manga` + ) + const { data: artworksData } = await axios.get( + `${getConfig().API_URL}/api/rest/public/creators/${id}/contests/${contestId}/artworks` + ) + const result = { + mangas: mangaData.manga?.map((m: any) => { + const response = { + id: m.id, + slug: m.slug, + image: m.poster, + status: { + type: COMIC_STATUS[formatStatus(m.status)], + text: formatStatus(m.status), + }, + authors: m.manga_creators?.map((c: any) => ({ + id: c.creator?.isActive ? c.creator?.id : undefined, + slug: c.creator?.isActive ? c.creator?.slug : undefined, + name: c.creator?.isActive ? c.creator?.pen_name || c.creator?.name : 'Unknown creator', + })), + views: m.manga_total_views?.views || 0, + likes: m.manga_total_likes?.likes || 0, + subscriptions: m.manga_subscribers_aggregate?.aggregate?.count || 0, + latestChap: { + number: m.chapters?.[0]?.chapter_number, + id: m.chapters?.[0]?.id, + }, + tags: m.manga_tags.map(({ tag }: any) => { + const r = {} + LANGUAGE.forEach((l) => { + const tagLanguage = tag.tag_languages.find((tl) => tl.language_id == l.id) || tag.tag_languages[0] + r[l.shortLang] = tagLanguage.value + }) + return r + }), } - }) - return response - }), - artworks: artworksData, + LANGUAGE.forEach((language) => { + const l = + m.manga_languages.find((ml) => ml.language_id == language.id) || + m.manga_languages.find((ml) => ml.is_main_language) + response[language.shortLang] = { + title: l ? l?.title : 'Unknown title', + description: l ? l?.description : 'Unknown description', + } + }) + return response + }), + artworks: artworksData, + } + console.log(result) + return result + } catch (error) { + console.error(error) } }