Files
hms-licht-ton/frontend/src/components/LegalContentPage.tsx
T
Agent Zero cd465e0564 feat: add MCP server with resources, tools, auth, and Traefik routing
- Add backend/app/mcp_server.py with FastMCP server (hms-cms)
- Resources: design-rules, page-structure, sync-status
- Tools: trigger_sync, get_sync_log, set_rentman_token, read_file,
  write_file, create_page, deploy, git_commit, git_status
- Bearer token auth via MCP_AUTH_TOKEN env var
- Mount MCP at /mcp with streamable HTTP transport
- Integrate session manager in FastAPI lifespan
- Add Traefik labels for external /mcp route on hms.media-on.de
- Add git, docker.io, curl to backend Dockerfile
- Mount repo root + docker socket in backend container
- Add mcp>=1.0.0 to requirements.txt
2026-07-12 15:58:22 +02:00

37 lines
1.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { useEffect } from 'react';
interface Props {
title: string;
content?: string;
loading?: boolean;
}
export default function LegalContentPage({ title, content = '', loading = false }: Props) {
useEffect(() => {
document.title = `${title} HMS Licht & Ton`;
}, [title]);
if (loading) {
return (
<div className="max-w-3xl mx-auto">
<div className="space-y-4">
<div className="hms-skeleton rounded-md" style={{ height: 32, width: '60%' }} />
<div className="hms-skeleton rounded-md" style={{ height: 20 }} />
<div className="hms-skeleton rounded-md" style={{ height: 20, width: '90%' }} />
<div className="hms-skeleton rounded-md" style={{ height: 20 }} />
<div className="hms-skeleton rounded-md" style={{ height: 20, width: '80%' }} />
</div>
</div>
);
}
return (
<div className="max-w-3xl mx-auto">
<article>
<h1 className="text-3xl font-bold text-text mb-6">{title}</h1>
<div className="prose prose-invert max-w-none text-text-muted" dangerouslySetInnerHTML={{ __html: content }} />
</article>
</div>
);
}