import { useLocation, useParams, useSearchParams } from 'react-router-dom' import { useEffect, useState } from 'react' import Container from '@/components/shared/Container' import Grid from './Grid' import { FaChartArea, FaList, FaTable, FaTh, FaUser } from 'react-icons/fa' import { useStoreActions, useStoreState } from '@/store/store' import classNames from 'classnames' import { useLocalization } from '@/utils/hooks/useLocalization' import { GridDto } from '@/proxy/form/models' import Card from './Card' import { Button } from '@/components/ui' import Pivot from './Pivot' import { getList } from '@/services/form.service' import { useCurrentMenuIcon } from '@/utils/hooks/useCurrentMenuIcon' import { ListViewLayoutType } from '../admin/listForm/edit/types' import Chart from './Chart' const List = () => { const params = useParams() const { translate } = useLocalization() const [searchParams] = useSearchParams() const listFormCode = params?.listFormCode ?? '' const mode = useStoreState((state) => state.theme.mode) const [viewMode, setViewMode] = useState() const [gridDto, setGridDto] = useState() const MenuIcon = useCurrentMenuIcon('w-5 h-5') const { states } = useStoreState((state) => state.base.lists) const { setStates } = useStoreActions((a) => a.base.lists) // 🔹 Tekrar çağırılabilir metod const refreshGridDto = async () => { if (!listFormCode) return try { const response = await getList({ listFormCode }) setGridDto(response.data) } catch (error) { console.error('GridDto refresh error:', error) } } useEffect(() => { refreshGridDto().then(() => { //base içerisine kaydedilen state içerisinden bakılacak const listFormStates = states.find((a) => a.listFormCode === listFormCode) if (listFormStates) { setViewMode(listFormStates.layout || 'grid') } else { setViewMode(gridDto?.gridOptions?.layoutDto.defaultLayout || 'grid') } }) }, [listFormCode]) if (!listFormCode) { return null } if (!gridDto) { return null } return (
{MenuIcon}

{translate('::' + gridDto?.gridOptions?.title) || ''}

{gridDto?.gridOptions?.description === gridDto?.gridOptions?.title ? (

) : (

{translate('::' + gridDto?.gridOptions?.description)}

)}
{gridDto?.gridOptions?.layoutDto.grid && ( )} {gridDto?.gridOptions?.layoutDto.card && ( )} {gridDto?.gridOptions?.layoutDto.pivot && ( )} {gridDto?.gridOptions?.layoutDto.chart && ( )}
{viewMode === 'pivot' ? ( ) : viewMode === 'card' ? ( ) : viewMode === 'grid' ? ( ) : viewMode === 'chart' ? ( ) : null}
) } export default List