Files
microdao-daarion/src/features/microdao/components/MicrodaoHero.tsx
Apple a6e531a098 fix: NODE1_REPAIR - healthchecks, dependencies, SSR env, telegram gateway
TASK_PHASE_NODE1_REPAIR:
- Fix daarion-web SSR: use CITY_API_BASE_URL instead of 127.0.0.1
- Fix auth API routes: use AUTH_API_URL env var
- Add wget to Dockerfiles for healthchecks (stt, ocr, web-search, swapper, vector-db, rag)
- Update healthchecks to use wget instead of curl
- Fix vector-db-service: update torch==2.4.0, sentence-transformers==2.6.1
- Fix rag-service: correct haystack imports for v2.x
- Fix telegram-gateway: remove msg.ack() for non-JetStream NATS
- Add /health endpoint to nginx mvp-routes.conf
- Add room_role, is_public, sort_order columns to city_rooms migration
- Add TASK_PHASE_NODE1_REPAIR.md and DEPLOY_NODE1_REPAIR.md docs

Previous tasks included:
- TASK 039-044: Orchestrator rooms, Matrix chat cleanup, CrewAI integration
2025-11-29 05:17:08 -08:00

72 lines
2.2 KiB
TypeScript

import React from 'react';
import { MicrodaoBrandBadge } from './MicrodaoBrandBadge';
interface MicrodaoHeroProps {
bannerUrl?: string | null;
logoUrl?: string | null;
name: string;
tagline?: string | null;
children?: React.ReactNode; // For action buttons etc.
}
export const MicrodaoHero: React.FC<MicrodaoHeroProps> = ({
bannerUrl,
logoUrl,
name,
tagline,
children
}) => {
return (
<div className="relative w-full h-48 md:h-64 lg:h-80 bg-gray-900 overflow-hidden group">
{/* Background / Banner */}
{bannerUrl ? (
<div
className="absolute inset-0 w-full h-full bg-cover bg-center transition-transform duration-700 group-hover:scale-105"
style={{ backgroundImage: `url(${bannerUrl})` }}
/>
) : (
<div className="absolute inset-0 w-full h-full bg-gradient-to-r from-slate-900 via-purple-900 to-slate-900" />
)}
{/* Overlay */}
<div className="absolute inset-0 bg-black/40 backdrop-blur-[2px]" />
<div className="absolute inset-0 bg-gradient-to-t from-black/80 via-transparent to-transparent" />
{/* Content */}
<div className="absolute bottom-0 left-0 w-full p-6 md:p-8">
<div className="container mx-auto flex flex-col md:flex-row items-end md:items-end gap-6">
{/* Logo */}
<div className="relative -mb-2 md:mb-0 shrink-0">
<MicrodaoBrandBadge
logoUrl={logoUrl}
name={name}
size="xl"
className="ring-4 ring-black/20 shadow-2xl"
/>
</div>
{/* Text */}
<div className="flex-1 mb-1">
<h1 className="text-3xl md:text-4xl font-bold text-white drop-shadow-lg tracking-tight">
{name}
</h1>
{tagline && (
<p className="text-gray-200 text-lg mt-1 max-w-2xl drop-shadow-md font-light">
{tagline}
</p>
)}
</div>
{/* Actions */}
{children && (
<div className="flex items-center gap-3 mt-4 md:mt-0">
{children}
</div>
)}
</div>
</div>
</div>
);
};