import React, { useEffect } from 'react'
import { useNavigate } from 'react-router-dom'
import { URLs } from '../../__data__/urls'
import { useChallenge } from '../../context/ChallengeContext'
import { Header } from '../../components/Header'
import { ChainSelector } from '../../components/ChainSelector'
import { storage } from '../../utils/storage'
import type { ChallengeChain } from '../../__data__/types'
export const ChainsPage = () => {
const navigate = useNavigate()
const { nickname } = useChallenge()
// Проверяем авторизацию
useEffect(() => {
const workplaceNumber = storage.getWorkplaceNumber()
if (!workplaceNumber) {
navigate(URLs.workplace, { replace: true })
return
}
if (!nickname) {
navigate(URLs.login, { replace: true })
}
}, [navigate, nickname])
const handleSelectChain = (chain: ChallengeChain) => {
storage.setSelectedChainId(chain.id)
if (chain.tasks.length > 0) {
// Получаем самый дальний достигнутый индекс
const furthestIndex = storage.getFurthestTaskIndex(chain.id)
// Если нет прогресса, инициализируем с первого задания
const targetIndex = furthestIndex >= 0 ? furthestIndex : 0
const targetTask = chain.tasks[targetIndex] || chain.tasks[0]
storage.setSelectedTaskId(targetTask.id)
// Убеждаемся, что прогресс установлен
storage.setFurthestTaskIndex(chain.id, targetIndex)
navigate(URLs.task(chain.id, targetTask.id))
}
}
if (!nickname) {
return null
}
return (
<>
>
)
}