diff --git a/apps/start/src/components/organization/feedback-prompt.tsx b/apps/start/src/components/organization/feedback-prompt.tsx index e3a008cb..c32592bd 100644 --- a/apps/start/src/components/organization/feedback-prompt.tsx +++ b/apps/start/src/components/organization/feedback-prompt.tsx @@ -1,19 +1,18 @@ +import { useEffect, useMemo } from 'react'; import { PromptCard } from '@/components/organization/prompt-card'; import { Button } from '@/components/ui/button'; import { useAppContext } from '@/hooks/use-app-context'; import { useCookieStore } from '@/hooks/use-cookie-store'; import { op } from '@/utils/op'; -import { MessageSquareIcon } from 'lucide-react'; -import { useEffect, useMemo } from 'react'; const THIRTY_DAYS_IN_SECONDS = 60 * 60 * 24 * 30; export default function FeedbackPrompt() { - const { isSelfHosted } = useAppContext(); + const { isSelfHosted, isDemo } = useAppContext(); const [feedbackPromptSeen, setFeedbackPromptSeen] = useCookieStore( 'feedback-prompt-seen', '', - { maxAge: THIRTY_DAYS_IN_SECONDS }, + { maxAge: THIRTY_DAYS_IN_SECONDS } ); const shouldShow = useMemo(() => { @@ -21,6 +20,10 @@ export default function FeedbackPrompt() { return false; } + if (isDemo) { + return false; + } + if (!feedbackPromptSeen) { return true; } @@ -36,7 +39,7 @@ export default function FeedbackPrompt() { // If date parsing fails, show the prompt return true; } - }, [isSelfHosted, feedbackPromptSeen]); + }, [isDemo, isSelfHosted, feedbackPromptSeen]); const handleGiveFeedback = () => { // Open userjot widget @@ -61,14 +64,14 @@ export default function FeedbackPrompt() { return ( -
-

+

+

Your feedback helps us build features you actually need. Share your thoughts, report bugs, or suggest improvements

diff --git a/apps/start/src/components/organization/supporter-prompt.tsx b/apps/start/src/components/organization/supporter-prompt.tsx index 69f30b3b..c5767689 100644 --- a/apps/start/src/components/organization/supporter-prompt.tsx +++ b/apps/start/src/components/organization/supporter-prompt.tsx @@ -1,7 +1,3 @@ -import { PromptCard } from '@/components/organization/prompt-card'; -import { LinkButton } from '@/components/ui/button'; -import { useAppContext } from '@/hooks/use-app-context'; -import { useCookieStore } from '@/hooks/use-cookie-store'; import { AwardIcon, HeartIcon, @@ -11,6 +7,10 @@ import { SparklesIcon, ZapIcon, } from 'lucide-react'; +import { PromptCard } from '@/components/organization/prompt-card'; +import { LinkButton } from '@/components/ui/button'; +import { useAppContext } from '@/hooks/use-app-context'; +import { useCookieStore } from '@/hooks/use-cookie-store'; const PERKS = [ { @@ -55,42 +55,42 @@ function PerkPoint({ description: string; }) { return ( -
+
-
+

{text}

-

{description}

+

{description}

); } export default function SupporterPrompt() { - const { isSelfHosted } = useAppContext(); + const { isSelfHosted, isDemo } = useAppContext(); const [supporterPromptClosed, setSupporterPromptClosed] = useCookieStore( 'supporter-prompt-closed', - false, + false ); - if (!isSelfHosted) { + if (!isSelfHosted || isDemo) { return null; } return ( setSupporterPromptClosed(true)} show={!supporterPromptClosed} - gradientColor="rgb(16 185 129)" + subtitle="Help us build the future of open analytics" + title="Support OpenPanel" >
{PERKS.map((perk) => ( ))}
@@ -102,13 +102,13 @@ export default function SupporterPrompt() { > Become a Supporter -

+

Starting at $20/month • Cancel anytime •{' '} Learn more diff --git a/apps/start/src/hooks/use-app-context.ts b/apps/start/src/hooks/use-app-context.ts index 6bf67d0b..b01c6123 100644 --- a/apps/start/src/hooks/use-app-context.ts +++ b/apps/start/src/hooks/use-app-context.ts @@ -6,8 +6,7 @@ export function useAppContext() { }); if ( - !params.apiUrl || - !params.dashboardUrl || + !(params.apiUrl && params.dashboardUrl) || typeof params.isSelfHosted === 'undefined' ) { throw new Error('API URL or dashboard URL is not set'); @@ -18,5 +17,6 @@ export function useAppContext() { dashboardUrl: params.dashboardUrl, isSelfHosted: params.isSelfHosted, isMaintenance: params.isMaintenance ?? false, + isDemo: params.isDemo ?? false, }; }