List için select Endoint çağrı hatası düzeltildi.

This commit is contained in:
Sedat Öztürk 2026-08-01 09:01:40 +03:00
parent 2eef3ead35
commit f39a3e5764

View file

@ -1,4 +1,12 @@
import React, { Suspense, startTransition, useCallback, useEffect, useMemo, useState } from 'react'
import React, {
Suspense,
startTransition,
useCallback,
useEffect,
useMemo,
useRef,
useState,
} from 'react'
import '@/utils/registerDevExtremeEditors'
import { useParams, useSearchParams } from 'react-router-dom'
import classNames from 'classnames'
@ -84,17 +92,31 @@ const List: React.FC = () => {
const { states } = useStoreState((state) => state.admin.lists)
const { setStates } = useStoreActions((a) => a.admin.lists)
const [gridDto, setGridDto] = useState<GridDto | null>(null)
const [viewMode, setViewMode] = useState<ListViewLayoutType | undefined>()
const activeListFormCodeRef = useRef(listFormCode)
activeListFormCodeRef.current = listFormCode
const [gridDtoState, setGridDtoState] = useState<{
listFormCode: string
gridDto: GridDto | null
}>({ listFormCode: '', gridDto: null })
const gridDto = gridDtoState.listFormCode === listFormCode ? gridDtoState.gridDto : null
const [viewModeState, setViewModeState] = useState<{
listFormCode: string
layoutType?: ListViewLayoutType
}>({ listFormCode: '' })
const viewMode = viewModeState.listFormCode === listFormCode ? viewModeState.layoutType : undefined
/* =======================
🔹 GRID DTO FETCH
======================= */
const refreshGridDto = useCallback(async () => {
if (!listFormCode) return
const requestedListFormCode = listFormCode
try {
const response = await getList({ listFormCode })
setGridDto(response.data)
const response = await getList({ listFormCode: requestedListFormCode })
if (activeListFormCodeRef.current !== requestedListFormCode) return
setGridDtoState({ listFormCode: requestedListFormCode, gridDto: response.data })
} catch (err) {
console.error('GridDto load error:', err)
}
@ -114,7 +136,10 @@ const List: React.FC = () => {
const defaultLayout = gridDto.gridOptions?.layoutDto?.defaultLayout
const candidate = savedLayout ?? defaultLayout
setViewMode(isLayoutValid(gridDto, candidate) ? candidate : 'grid')
setViewModeState({
listFormCode,
layoutType: isLayoutValid(gridDto, candidate) ? candidate : 'grid',
})
}, [gridDto, states, listFormCode])
/* =======================
@ -123,7 +148,7 @@ const List: React.FC = () => {
const setLayout = useCallback(
(layout: ListViewLayoutType) => {
startTransition(() => {
setViewMode(layout)
setViewModeState({ listFormCode, layoutType: layout })
})
setStates({ listFormCode, layout })
},