Files
hipctf/Blog.tsx
m0rph3us1987 0d07264788 - Fixed Challenge Modal overlap issue by adjusting the main stacking context in App.tsx
- Implemented "click-outside-to-close" functionality for both the Challenge Modal and User Dropdown
- Added protocol-specific action buttons for challenges: "Open in new tab" for HTTP and "Copy to clipboard" for NC
- Enhanced Scoreboard rankings with significantly larger, consistent font sizes (text-2xl) for better readability
- Rebranded "TEAM_IDENTIFIER" to "PLAYER" and "TOTAL_POINTS" to "POINTS" across the platform (Scoreboard, Matrix, User Menu)
- Updated navigation: Renamed "SCOREBOARD" to "SCORES" in the nav bar and dynamic page titles
- Modernized User Dropdown menu with a dedicated "PLAYER" header and "LOGOUT" action
- Improved Score Matrix and Score Graph titles for consistency with the new "Player" terminology
- Added CAPTCHA human verification (svg-captcha) to Login and Registration flows for enhanced security
- Optimized frontend assets by migrating Tailwind and JetBrains Mono to local hosting
- Refactored Admin panel: Renamed "Operators" to "Users" and improved layout alignment
2026-03-11 17:47:46 +01:00

22 lines
865 B
TypeScript

import React from 'react';
import { Newspaper } from 'lucide-react';
import { useCTF } from './CTFContext';
export const Blog: React.FC = () => {
const { state } = useCTF();
return (
<div className="max-w-4xl mx-auto py-12 px-6">
<div className="space-y-12">
{state.blogs.map((post) => (
<div key={post.id} className="hxp-border-purple bg-white/5 p-8 relative group">
<div className="absolute top-0 right-0 bg-[#bf00ff] text-black text-[10px] font-black px-4 py-1">{new Date(post.timestamp).toLocaleString()}</div>
<h3 className="text-3xl font-black text-white italic mb-4">{post.title}</h3>
<div className="text-slate-400 font-bold text-sm leading-relaxed whitespace-pre-wrap border-l-4 border-[#333] pl-6 py-2">{post.content}</div>
</div>
))}
</div>
</div>
);
};