List için select Endoint çağrı hatası düzeltildi.
This commit is contained in:
parent
2eef3ead35
commit
f39a3e5764
1 changed files with 32 additions and 7 deletions
|
|
@ -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 })
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in a new issue