Files
breakpilot-lehrer/studio-v2/app/messages/_components/ContextMenu.tsx
Benjamin Admin 0b37c5e692 [split-required] Split website + studio-v2 monoliths (Phase 3 continued)
Website (14 monoliths split):
- compliance/page.tsx (1,519 → 9), docs/audit (1,262 → 20)
- quality (1,231 → 16), alerts (1,203 → 10), docs (1,202 → 11)
- i18n.ts (1,173 → 8 language files)
- unity-bridge (1,094 → 12), backlog (1,087 → 6)
- training (1,066 → 8), rag (1,063 → 8)
- Deleted index_original.ts (4,899 LOC dead backup)

Studio-v2 (5 monoliths split):
- meet/page.tsx (1,481 → 9), messages (1,166 → 9)
- AlertsB2BContext.tsx (1,165 → 5 modules)
- alerts-b2b/page.tsx (1,019 → 6), korrektur/archiv (1,001 → 6)

All existing imports preserved. Zero new TypeScript errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 17:52:36 +02:00

48 lines
1.3 KiB
TypeScript

'use client'
interface ContextMenuProps {
isDark: boolean
contextMenu: { x: number; y: number; messageId: string }
currentConversationId: string | null
deleteMessage: (convId: string, msgId: string) => void
onClose: () => void
}
export function ContextMenu({ isDark, contextMenu, currentConversationId, deleteMessage, onClose }: ContextMenuProps) {
return (
<div
className={`fixed rounded-xl border shadow-xl overflow-hidden z-50 ${
isDark
? 'bg-slate-900 border-white/20'
: 'bg-white border-slate-200'
}`}
style={{ top: contextMenu.y, left: contextMenu.x }}
>
<button
onClick={() => {
// Show quick reactions
onClose()
}}
className={`w-full px-4 py-2 text-left text-sm transition-colors ${
isDark ? 'hover:bg-white/10 text-white' : 'hover:bg-slate-100 text-slate-700'
}`}
>
Reagieren
</button>
<button
onClick={() => {
if (currentConversationId) {
deleteMessage(currentConversationId, contextMenu.messageId)
}
onClose()
}}
className={`w-full px-4 py-2 text-left text-sm transition-colors ${
isDark ? 'hover:bg-red-500/20 text-red-400' : 'hover:bg-red-50 text-red-600'
}`}
>
Loeschen
</button>
</div>
)
}