import { useLocation, useParams, useSearchParams } from 'react-router-dom' import { useEffect, useState } from 'react' import Container from '@/components/shared/Container' import Grid from './Grid' import { 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' 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<'grid' | 'card' | 'pivot'>() 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) useEffect(() => { const initializeGridAsync = async () => { const response = await getList({ listFormCode }) setGridDto(response.data) } initializeGridAsync() .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') } }) .catch((error) => { console.error('Hata oluştu:', error) }) }, [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 && ( )}
{viewMode === 'pivot' ? ( ) : viewMode === 'card' ? ( ) : viewMode === 'grid' ? ( ) : null}
) } export default List