From c044cc8a12db35d1ea1ba8715df540291b36e87a Mon Sep 17 00:00:00 2001 From: OC Date: Wed, 20 Nov 2024 10:42:25 +0530 Subject: [PATCH] Pointer is set to none when the idea is loading (getting generated) so the user will be able to click on the dino again only when the idea is generated --- src/app/marketing/page.tsx | 2 +- src/components/idea-generator.js | 53 ++++++++++++++++++++------------ 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/app/marketing/page.tsx b/src/app/marketing/page.tsx index 45a08a0b..8cb490d5 100644 --- a/src/app/marketing/page.tsx +++ b/src/app/marketing/page.tsx @@ -1206,7 +1206,7 @@ const PrizeData = [ { name: 'Framework Laptop', - doubloons: 3075, + doubloons: '4980', image: 'https://noras-secret-cdn.hackclub.dev/shop/fw_13.png', sub: '16", 16GB RAM....16 16 16', estMin: 208, diff --git a/src/components/idea-generator.js b/src/components/idea-generator.js index 95ca8f90..c7d3018a 100644 --- a/src/components/idea-generator.js +++ b/src/components/idea-generator.js @@ -142,28 +142,38 @@ const IdeaGenerator = () => { ] const generateIdea = async () => { - if (typing) return + if (typing || loading) return + setLoading(true) setMessage(sample(thinkingWords)) sample(thinkingSounds).play() + let newIdea = '' - await Promise.all([ - fetchIdea().then((i) => { - newIdea = i.idea - }), - new Promise((resolve) => setTimeout(resolve, 2000)), - ]) - setTyping(true) - setLoading(false) - setMessage('') - yap(newIdea, { - letterCallback: ({ letter }) => { - setMessage((prev) => prev + letter) - }, - endCallback: () => { - setTyping(false) - }, - }) + + try { + await Promise.all([ + fetchIdea().then((i) => { + newIdea = i.idea + }), + new Promise((resolve) => setTimeout(resolve, 2000)), + ]) + + setTyping(true) + setLoading(false) + setMessage('') + + yap(newIdea, { + letterCallback: ({ letter }) => { + setMessage((prev) => prev + letter) + }, + endCallback: () => { + setTyping(false) + }, + }) + } catch (error) { + console.error('Error generating idea:', error) + setLoading(false) + } } const activeClass = loading ? 'thinking' : typing ? 'typing' : 'idle' @@ -177,9 +187,12 @@ const IdeaGenerator = () => {
idea generator generateIdea()} + onClick={loading ? null : generateIdea} + style={{ pointerEvents: loading ? 'none' : 'auto' }} /> {message}