Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions apps/web/modules/apps/components/AppCard.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import { useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import { useEffect, useMemo, useState } from "react";
import posthog from "posthog-js";

import { InstallAppButton } from "@calcom/app-store/InstallAppButton";
Expand All @@ -13,7 +13,7 @@ import { AppOnboardingSteps } from "@calcom/lib/apps/appOnboardingSteps";
import { getAppOnboardingUrl } from "@calcom/lib/apps/getAppOnboardingUrl";
import { WEBAPP_URL } from "@calcom/lib/constants";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { markdownToSafeHTML } from "@calcom/lib/markdownToSafeHTML";
import { stripMarkdown } from "@calcom/lib/stripMarkdown";
import type { AppFrontendPayload as App } from "@calcom/types/App";
import type { CredentialFrontendPayload as Credential } from "@calcom/types/Credential";
import classNames from "@calcom/ui/classNames";
Expand Down Expand Up @@ -42,6 +42,8 @@ export function AppCard({ app, credentials, searchText, userAdminTeams }: AppCar

const appInstalled = enabledOnTeams && userAdminTeams ? userAdminTeams.length < appAdded : appAdded > 0;

const cleanDescription = useMemo(() => stripMarkdown(app.description || ""), [app.description]);

const mutation = useAddAppMutation(null, {
onSuccess: (data) => {
if (data?.setupPending) return;
Expand Down Expand Up @@ -109,7 +111,7 @@ export function AppCard({ app, credentials, searchText, userAdminTeams }: AppCar
/>
</div>
<div className="flex items-center">
<h3 className="text-emphasis font-medium">
<h3 className="text-emphasis truncate font-medium" title={app.name}>
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Jan 12, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: App name truncate won’t take effect in flex row (missing min-w-0/width), so long titles will still overflow.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At apps/web/modules/apps/components/AppCard.tsx, line 114:

<comment>App name truncate won’t take effect in flex row (missing min-w-0/width), so long titles will still overflow.</comment>

<file context>
@@ -109,7 +111,7 @@ export function AppCard({ app, credentials, searchText, userAdminTeams }: AppCar
       </div>
       <div className="flex items-center">
-        <h3 className="text-emphasis font-medium">
+        <h3 className="text-emphasis truncate font-medium" title={app.name}>
           {searchTextIndex != undefined && searchText ? (
             <>
</file context>

Fix confidence (alpha): 8.5/10

Suggested change
<h3 className="text-emphasis truncate font-medium" title={app.name}>
<h3 className="text-emphasis truncate font-medium min-w-0" title={app.name}>
Fix with Cubic

{searchTextIndex != undefined && searchText ? (
<>
{app.name.substring(0, searchTextIndex)}
Expand All @@ -127,16 +129,7 @@ export function AppCard({ app, credentials, searchText, userAdminTeams }: AppCar
<span>{props.rating} stars</span> <Icon name="star" className="ml-1 mt-0.5 h-4 w-4 text-yellow-600" />
<span className="pl-1 text-subtle">{props.reviews} reviews</span>
</div> */}
<p
className="text-default mt-2 grow text-sm"
dangerouslySetInnerHTML={{ __html: markdownToSafeHTML(app.description) }}
style={{
overflow: "hidden",
display: "-webkit-box",
WebkitBoxOrient: "vertical",
WebkitLineClamp: "3",
}}
/>
<p className="text-default mt-2 line-clamp-3 text-sm">{cleanDescription}</p>

<div className="mt-5 flex max-w-full flex-row justify-between gap-2">
<Button
Expand Down
Loading