import { RouteDto } from '@/proxy/routes/models' import React, { useCallback, useEffect, useState } from 'react' import { useStoreState } from '@/store/store' import { DynamicRoutesContext } from './dynamicRoutes.context' export const DynamicRoutesProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => { const extraProperties = useStoreState((state) => state.abpConfig?.config?.extraProperties) const setupMode = useStoreState((state) => state.base.common.setupMode) const bootstrapFailed = useStoreState((state) => state.base.common.bootstrapFailed) const [routes, setRoutes] = useState([]) const [loading, setLoading] = useState(true) const [error, setError] = useState(null) const loadRoutesFromConfig = useCallback(() => { setLoading(true) setError(null) try { // Get routes from extraProperties instead of API call const configRoutes = extraProperties?.routes as RouteDto[] if (configRoutes && Array.isArray(configRoutes)) { setRoutes(configRoutes) } else { setRoutes([]) setError('No routes found in configuration') } } catch (e: any) { setError(e.message || 'Error loading routes from configuration') setRoutes([]) } finally { setLoading(false) } }, [extraProperties]) useEffect(() => { if (extraProperties) { loadRoutesFromConfig() } else if (setupMode || bootstrapFailed) { // Config hiç gelmeyecek (sunucu kurulum modunda veya erişilemiyor). // Loading gate'i kapat ki kullanıcı sonsuz spinner yerine ilgili ekranı görsün. setLoading(false) setRoutes([]) } }, [extraProperties, setupMode, bootstrapFailed, loadRoutesFromConfig]) return ( {children} ) }