mirror of
https://github.com/multica-ai/multica.git
synced 2026-07-29 14:37:44 +02:00
- Add @multica/eslint-config package (base, react, next configs) - Replace `next lint` (removed in Next.js 16) with `eslint .` - Add lint scripts to all packages and desktop app - Add noUnusedLocals, noUnusedParameters, noImplicitReturns to base tsconfig - Fix all resulting TS/ESLint errors (unused imports, missing returns, stale eslint-disable comments from legacy eslint-config-next) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
"use client";
|
|
|
|
import type { ReactNode } from "react";
|
|
import { Users } from "lucide-react";
|
|
import { HoverCard, HoverCardTrigger, HoverCardContent } from "@multica/ui/components/ui/hover-card";
|
|
import { ActorAvatar } from "./actor-avatar";
|
|
|
|
interface MentionHoverCardProps {
|
|
type: string;
|
|
id: string;
|
|
name: string;
|
|
initials: string;
|
|
avatarUrl?: string | null;
|
|
role?: string;
|
|
children: ReactNode;
|
|
}
|
|
|
|
function MentionHoverCard({
|
|
type,
|
|
id: _id,
|
|
name,
|
|
initials,
|
|
avatarUrl,
|
|
role,
|
|
children,
|
|
}: MentionHoverCardProps) {
|
|
if (type === "all") {
|
|
return (
|
|
<HoverCard>
|
|
<HoverCardTrigger render={<span />} className="cursor-default">
|
|
{children}
|
|
</HoverCardTrigger>
|
|
<HoverCardContent align="start" className="w-auto min-w-48 max-w-72">
|
|
<div className="flex items-center gap-2.5">
|
|
<div className="flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-primary/10">
|
|
<Users className="h-4 w-4 text-primary" />
|
|
</div>
|
|
<div className="min-w-0">
|
|
<p className="text-sm font-medium">All members</p>
|
|
<p className="text-xs text-muted-foreground">Notifies all workspace members</p>
|
|
</div>
|
|
</div>
|
|
</HoverCardContent>
|
|
</HoverCard>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<HoverCard>
|
|
<HoverCardTrigger render={<span />} className="cursor-default">
|
|
{children}
|
|
</HoverCardTrigger>
|
|
<HoverCardContent align="start" className="w-auto min-w-48 max-w-72">
|
|
<div className="flex items-center gap-2.5">
|
|
<ActorAvatar
|
|
name={name}
|
|
initials={initials}
|
|
avatarUrl={avatarUrl}
|
|
isAgent={type === "agent"}
|
|
size={32}
|
|
/>
|
|
<div className="min-w-0">
|
|
<p className="text-sm font-medium truncate">{name}</p>
|
|
{role && (
|
|
<p className="text-xs text-muted-foreground truncate">{role}</p>
|
|
)}
|
|
</div>
|
|
</div>
|
|
</HoverCardContent>
|
|
</HoverCard>
|
|
);
|
|
}
|
|
|
|
export { MentionHoverCard, type MentionHoverCardProps };
|