Add covers

This commit is contained in:
2025-12-21 02:52:48 +07:00
parent 9d2dba87b8
commit 921917a319
12 changed files with 869 additions and 26 deletions

View File

@@ -9,6 +9,7 @@ import { useConfirm } from '@/store/confirm'
import { EventBanner } from '@/components/EventBanner'
import { EventControl } from '@/components/EventControl'
import { ActivityFeed, type ActivityFeedRef } from '@/components/ActivityFeed'
import { MarathonSettingsModal } from '@/components/MarathonSettingsModal'
import {
Users, Calendar, Trophy, Play, Settings, Copy, Check, Loader2, Trash2,
Globe, Lock, CalendarCheck, UserPlus, Gamepad2, ArrowLeft, Zap, Flag,
@@ -35,6 +36,7 @@ export function MarathonPage() {
const [showEventControl, setShowEventControl] = useState(false)
const [showChallenges, setShowChallenges] = useState(false)
const [expandedGameId, setExpandedGameId] = useState<number | null>(null)
const [showSettings, setShowSettings] = useState(false)
const activityFeedRef = useRef<ActivityFeedRef>(null)
useEffect(() => {
@@ -227,8 +229,8 @@ export function MarathonPage() {
{marathon.status === 'preparing' && isOrganizer && (
<Link to={`/marathons/${id}/lobby`}>
<NeonButton variant="secondary" icon={<Settings className="w-4 h-4" />}>
Настройка
<NeonButton variant="secondary" icon={<Gamepad2 className="w-4 h-4" />}>
Игры
</NeonButton>
</Link>
)}
@@ -266,6 +268,15 @@ export function MarathonPage() {
</button>
)}
{marathon.status === 'preparing' && isOrganizer && (
<NeonButton
variant="ghost"
onClick={() => setShowSettings(true)}
className="!text-gray-400 hover:!bg-dark-600"
icon={<Settings className="w-4 h-4" />}
/>
)}
{canDelete && (
<NeonButton
variant="ghost"
@@ -533,6 +544,14 @@ export function MarathonPage() {
</div>
)}
</div>
{/* Settings Modal */}
<MarathonSettingsModal
marathon={marathon}
isOpen={showSettings}
onClose={() => setShowSettings(false)}
onUpdate={setMarathon}
/>
</div>
)
}