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