From 09bd5ba5a61ea72ea324da01bd0ab1d0854dc8d4 Mon Sep 17 00:00:00 2001 From: colegottdank Date: Wed, 18 Sep 2024 21:05:07 -0700 Subject: [PATCH] Enterprise fix (#2661) --- web/components/layout/auth/DesktopSidebar.tsx | 42 ++--- .../ProFeatureWrapper.tsx | 2 + .../shared/helicone/FeatureUpgradeCard.tsx | 140 ++++++++--------- .../templates/alerts/alertsPage.tsx | 36 ++--- .../templates/datasets/datasetsPage.tsx | 31 +++- .../templates/prompts/promptsPage.tsx | 144 +++++++++++++++++- .../templates/rateLimit/rateLimitPage.tsx | 4 +- .../templates/sessions/sessionsPage.tsx | 14 +- .../templates/webhooks/webhooksPage.tsx | 4 +- web/public/sitemap-0.xml | 50 +++--- 10 files changed, 326 insertions(+), 141 deletions(-) diff --git a/web/components/layout/auth/DesktopSidebar.tsx b/web/components/layout/auth/DesktopSidebar.tsx index ac5fb622a6..17d5a0ada4 100644 --- a/web/components/layout/auth/DesktopSidebar.tsx +++ b/web/components/layout/auth/DesktopSidebar.tsx @@ -45,6 +45,10 @@ const DesktopSidebar = ({ NAVIGATION }: SidebarProps) => { false ); + const shouldShowInfoBox = useMemo(() => { + return tier === "pro" || tier === "growth"; + }, [tier]); + const [expandedItems, setExpandedItems] = useLocalStorage( "expandedItems", [] @@ -202,26 +206,24 @@ const DesktopSidebar = ({ NAVIGATION }: SidebarProps) => { - {canShowInfoBox && - !isCollapsed && - (tier === "free" || tier === "growth") && ( -
- <>} className="flex flex-col"> -
- - Early Adopter Exclusive: $120 Credit for the year.
-
- - Switch to Pro and get $10/mo credit for 1 year, as a thank - you for your early support! - -
- -
-
- )} + {canShowInfoBox && !isCollapsed && shouldShowInfoBox && ( +
+ <>} className="flex flex-col"> +
+ + Early Adopter Exclusive: $120 Credit for the year.
+
+ + Switch to Pro and get $10/mo credit for 1 year, as a thank + you for your early support! + +
+ +
+
+ )}
{isCollapsed ? ( <> diff --git a/web/components/shared/ProBlockerComponents/ProFeatureWrapper.tsx b/web/components/shared/ProBlockerComponents/ProFeatureWrapper.tsx index 6f09749d72..08df37a675 100644 --- a/web/components/shared/ProBlockerComponents/ProFeatureWrapper.tsx +++ b/web/components/shared/ProBlockerComponents/ProFeatureWrapper.tsx @@ -53,6 +53,8 @@ export const ProFeatureWrapper = forwardRef< enabled && (org?.currentOrg?.tier === "pro-20240913" || org?.currentOrg?.tier === "growth" || + org?.currentOrg?.tier === "pro" || + org?.currentOrg?.tier === "enterprise" || (org?.currentOrg?.stripe_metadata as { addons?: { prompts?: boolean } }) ?.addons?.prompts) ); diff --git a/web/components/shared/helicone/FeatureUpgradeCard.tsx b/web/components/shared/helicone/FeatureUpgradeCard.tsx index b408aa21bc..391b7f8362 100644 --- a/web/components/shared/helicone/FeatureUpgradeCard.tsx +++ b/web/components/shared/helicone/FeatureUpgradeCard.tsx @@ -18,6 +18,7 @@ interface FeatureUpgradeCardProps { videoSrc?: string; youtubeVideo?: string; documentationLink: string; + tier?: string; } export const FeatureUpgradeCard: React.FC = ({ @@ -27,6 +28,7 @@ export const FeatureUpgradeCard: React.FC = ({ videoSrc, youtubeVideo, documentationLink, + tier = "free", }) => { const [isPlanComparisonVisible, setIsPlanComparisonVisible] = useState(false); @@ -60,77 +62,79 @@ export const FeatureUpgradeCard: React.FC = ({ > )} - - - {isPlanComparisonVisible && ( -
-

Plan Comparison

-
-
-

Free

- - Current plan - -
    -
  • - - 10k free requests/month -
  • -
  • - - Access to Dashboard -
  • -
  • - - Free, truly -
  • -
-
-
-

Pro

- $20/user -

Everything in Free, plus:

-
    -
  • - - Limitless requests (first 100k free) -
  • -
  • - - Access to all features -
  • -
  • - - Standard support -
  • -
- - See all features → - + {tier === "free" && ( + + + {isPlanComparisonVisible && ( +
+

Plan Comparison

+
+
+

Free

+ + Current plan + +
    +
  • + + 10k free requests/month +
  • +
  • + + Access to Dashboard +
  • +
  • + + Free, truly +
  • +
+
+
+

Pro

+ $20/user +

Everything in Free, plus:

+
    +
  • + + Limitless requests (first 100k free) +
  • +
  • + + Access to all features +
  • +
  • + + Standard support +
  • +
+ + See all features → + +
+ )} +
+ +
- )} -
- - -
-
+ + )} ); }; diff --git a/web/components/templates/alerts/alertsPage.tsx b/web/components/templates/alerts/alertsPage.tsx index 63f276328d..270d396b70 100644 --- a/web/components/templates/alerts/alertsPage.tsx +++ b/web/components/templates/alerts/alertsPage.tsx @@ -45,6 +45,19 @@ const AlertsPage = (props: AlertsPageProps) => { const { data: slackChannelsData, isLoading: isLoadingSlackChannels } = useGetOrgSlackChannels(orgContext?.currentOrg?.id || ""); + const isAlertsEnabled = () => { + const metadata = orgContext?.currentOrg?.stripe_metadata as { + addons?: { alerts?: boolean }; + }; + return ( + (metadata?.addons?.alerts && + orgContext?.currentOrg?.tier === "pro-20240913") || + orgContext?.currentOrg?.tier === "enterprise" || + orgContext?.currentOrg?.tier === "growth" || + orgContext?.currentOrg?.tier === "pro" + ); + }; + function formatTimeWindow(milliseconds: number): string { // Define the time windows with an index signature @@ -61,7 +74,6 @@ const AlertsPage = (props: AlertsPageProps) => { return (
- {/* Active Alerts */}

@@ -74,16 +86,7 @@ const AlertsPage = (props: AlertsPageProps) => {

- +
    {alerts.length === 0 ? ( - +
)} - {filteredPrompts && hasLimitedAccess ? ( + {filteredPrompts && (hasLimitedAccess || hasAccess) ? ( searchParams.get("view") === "card" ? (
    {filteredPrompts.map((prompt, i) => ( @@ -519,6 +522,143 @@ const chatCompletion = await openai.chat.completions.create( }} /> ) + ) : hasAccess || hasLimitedAccess ? ( +
    + + + Get Started with Prompts +

    + You haven't created any prompts yet. Let's get + started! +

    +
    + + +

    + Version prompts, create prompt templates, and run + experiments to improve prompt outputs. +

    +
    +
    +
    + +
    + + +
    +
    + +
    + +
    +
    +
    +
    + ) : org?.currentOrg?.tier === "pro-20240913" ? ( +
    + + + Need Prompts? +

    + The Prompts feature is not included in the Pro plan by + default. However, you can add it to your plan as an + optional extra. +

    +
    + + +

    + Version prompts, create prompt templates, and run + experiments to improve prompt outputs. +

    +
    +
    +
    + +
    + + +
    +
    + +
    + +
    +
    + +
    +
    +
    +
    ) : (
    @@ -547,7 +687,7 @@ const chatCompletion = await openai.chat.completions.create( code={` // 1. Add this line import { hprompt } from "@helicone/helicone"; - + const chatCompletion = await openai.chat.completions.create( { messages: [ diff --git a/web/components/templates/rateLimit/rateLimitPage.tsx b/web/components/templates/rateLimit/rateLimitPage.tsx index 9d539e145e..33895654ff 100644 --- a/web/components/templates/rateLimit/rateLimitPage.tsx +++ b/web/components/templates/rateLimit/rateLimitPage.tsx @@ -42,7 +42,9 @@ const RateLimitPage = (props: {}) => { const org = useOrg(); const isPro = org?.currentOrg?.tier === "pro-20240913" || - org?.currentOrg?.tier === "growth"; + org?.currentOrg?.tier === "growth" || + org?.currentOrg?.tier === "pro" || + org?.currentOrg?.tier === "enterprise"; const rateLimitFilterLeaf = { request_response_rmt: { diff --git a/web/components/templates/sessions/sessionsPage.tsx b/web/components/templates/sessions/sessionsPage.tsx index 81de92e9e2..27e00ebbf3 100644 --- a/web/components/templates/sessions/sessionsPage.tsx +++ b/web/components/templates/sessions/sessionsPage.tsx @@ -99,7 +99,7 @@ const SessionsPage = (props: SessionsPageProps) => { setInterval={setInterval} /> - ) : ( + ) : org?.currentOrg?.tier === "free" ? (
    { infoBoxText="Group and visualize multi-step LLM interactions by adding 2 simple headers." videoSrc="https://marketing-assets-helicone.s3.us-west-2.amazonaws.com/sessions.mp4" documentationLink="https://docs.helicone.ai/features/sessions" + tier={org?.currentOrg?.tier ?? "free"} + /> +
    + ) : ( +
    +
    )} diff --git a/web/components/templates/webhooks/webhooksPage.tsx b/web/components/templates/webhooks/webhooksPage.tsx index 931e36cc82..90f01821ee 100644 --- a/web/components/templates/webhooks/webhooksPage.tsx +++ b/web/components/templates/webhooks/webhooksPage.tsx @@ -65,8 +65,8 @@ const WebhooksPage = (props: WebhooksPageProps) => { return ( <> - Vault is currently in beta. If you have any issues, please contact us at - support@helicone.ai. + Webhooks are currently in beta. If you have any issues, please contact + us at support@helicone.ai.
    diff --git a/web/public/sitemap-0.xml b/web/public/sitemap-0.xml index 0b7337d0d5..99b651a7c4 100644 --- a/web/public/sitemap-0.xml +++ b/web/public/sitemap-0.xml @@ -1,28 +1,28 @@ -https://us.helicone.ai2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/aui2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/datasets2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/developer/keys2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/evals2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/experiment/fine-tuning2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/features/customer-portal2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/features/fine-tuning2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/integration/openpipe2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/open-stats2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/pricing2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/privacy2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/rate-limit2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/reset2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/roadmap2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/billing2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/billing-old2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/connections2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/members2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/organization2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/settings/rate-limits2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/signin2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/signup2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/slack/redirect2024-09-18T02:27:31.084Zdaily0.7 -https://us.helicone.ai/terms2024-09-18T02:27:31.084Zdaily0.7 +https://us.helicone.ai2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/aui2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/datasets2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/developer/keys2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/evals2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/experiment/fine-tuning2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/features/customer-portal2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/features/fine-tuning2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/integration/openpipe2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/open-stats2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/pricing2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/privacy2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/rate-limit2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/reset2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/roadmap2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/billing2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/billing-old2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/connections2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/members2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/organization2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/settings/rate-limits2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/signin2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/signup2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/slack/redirect2024-09-19T03:38:58.049Zdaily0.7 +https://us.helicone.ai/terms2024-09-19T03:38:58.049Zdaily0.7 \ No newline at end of file