import type { LayoutType } from '@/proxy/theme/models' import Loading from '@/components/shared/Loading' import { Alert, Button } from '@/components/ui' import { store, useStoreState } from '@/store' import { Suspense, useEffect } from 'react' import ErrorBoundary from '@/components/shared/ErrorBoundary' import type { FallbackProps } from '@/components/shared/ErrorBoundary' import { FaArrowLeft } from 'react-icons/fa' import { Navigate, useLocation } from 'react-router-dom' import { useLocalization } from '@/utils/hooks/useLocalization' import DialogProvider from './shared/DialogContext' import DialogShowComponent from './shared/DialogContext/DialogShowComponent' import UiDialog from './shared/UiDialog' import { DynamicRouter } from '@/routes/dynamicRouter' import { getAccessDeniedPath } from '@/utils/routing' interface ViewsProps { pageContainerType?: 'default' | 'gutterless' | 'contained' layout?: LayoutType } // `error` `unknown` tipinde geliyor; throw edilen her şey Error olmayabilir, // o yüzden daraltıyoruz. function ErrorFallback({ error, resetErrorBoundary }: FallbackProps) { const { translate } = useLocalization() const { name, message } = error instanceof Error ? error : { name: translate('::App.Platform.Error'), message: String(error) } return (
{name ?? translate('::App.Platform.Error')}
{message}
) } const Views = (props: ViewsProps) => { const { setWarning, removeError } = store.getActions().base.messages const { errors, warning } = useStoreState((state) => state.base.messages) const location = useLocation() useEffect(() => { setWarning('') }, [location, setWarning]) return ( }> {!!warning?.length && ( {warning.map((w, i) => (
{w}
))}
)} {errors?.some((e) => e.statusCode === '403' || e.statusCode === '401') && ( )} {errors?.map((e) => ( { removeError(e.id) }} onClose={() => { removeError(e.id) }} title={e.title} > {e.message}

{e.statusCode}

{e.cid}
))}
) } export default Views