Add static pages and styles
This commit is contained in:
@@ -1,16 +1,36 @@
|
||||
import { Link } from 'react-router-dom'
|
||||
import { useAuthStore } from '@/store/auth'
|
||||
import { contentApi } from '@/api/admin'
|
||||
import { NeonButton } from '@/components/ui'
|
||||
import { Bot, Bell, X } from 'lucide-react'
|
||||
import { useState } from 'react'
|
||||
import { useState, useEffect } from 'react'
|
||||
|
||||
const STORAGE_KEY = 'telegram_banner_dismissed'
|
||||
|
||||
// Default content if not configured in admin
|
||||
const DEFAULT_TITLE = 'Привяжите Telegram-бота'
|
||||
const DEFAULT_DESCRIPTION = 'Получайте уведомления о событиях марафона, новых заданиях и результатах прямо в Telegram'
|
||||
|
||||
export function TelegramBotBanner() {
|
||||
const user = useAuthStore((state) => state.user)
|
||||
const [dismissed, setDismissed] = useState(() => {
|
||||
return sessionStorage.getItem(STORAGE_KEY) === 'true'
|
||||
})
|
||||
const [title, setTitle] = useState(DEFAULT_TITLE)
|
||||
const [description, setDescription] = useState(DEFAULT_DESCRIPTION)
|
||||
|
||||
useEffect(() => {
|
||||
const loadContent = async () => {
|
||||
try {
|
||||
const data = await contentApi.getPublicContent('telegram_bot_info')
|
||||
if (data.title) setTitle(data.title)
|
||||
if (data.content) setDescription(data.content)
|
||||
} catch {
|
||||
// Use defaults if content not found
|
||||
}
|
||||
}
|
||||
loadContent()
|
||||
}, [])
|
||||
|
||||
const handleDismiss = () => {
|
||||
sessionStorage.setItem(STORAGE_KEY, 'true')
|
||||
@@ -49,10 +69,10 @@ export function TelegramBotBanner() {
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-lg font-semibold text-white mb-1">
|
||||
Привяжите Telegram-бота
|
||||
{title}
|
||||
</h3>
|
||||
<p className="text-gray-400 text-sm max-w-md">
|
||||
Получайте уведомления о событиях марафона, новых заданиях и результатах прямо в Telegram
|
||||
{description}
|
||||
</p>
|
||||
<div className="flex items-center gap-4 mt-2 text-xs text-gray-500">
|
||||
<span className="flex items-center gap-1">
|
||||
|
||||
Reference in New Issue
Block a user