Menu, Permission ve Language düzenlemesi
Grid Performans
This commit is contained in:
parent
7a4628b899
commit
4099ef9079
10 changed files with 114 additions and 224 deletions
|
|
@ -2888,7 +2888,7 @@
|
|||
},
|
||||
{
|
||||
"resourceName": "Platform",
|
||||
"key": "Abp.Identity.Ai",
|
||||
"key": "App.AiBot.Asistant",
|
||||
"en": "AI Assistant",
|
||||
"tr": "Yapay Zeka Asistanı"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@
|
|||
"path": "/admin/ai",
|
||||
"componentPath": "@/views/ai/Assistant",
|
||||
"routeType": "protected",
|
||||
"authority": ["Abp.Identity.Ai"]
|
||||
"authority": ["App.AiBot.Asistant"]
|
||||
},
|
||||
{
|
||||
"key": "admin.profile.general",
|
||||
|
|
@ -371,76 +371,6 @@
|
|||
"routeType": "protected",
|
||||
"authority": ["App.Files"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.classroom.dashboard",
|
||||
"path": "/admin/coordinator/classroom/dashboard",
|
||||
"componentPath": "@/views/coordinator/Classroom/Dashboard",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Classroom.Dashboard"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.classroom.classes",
|
||||
"path": "/admin/coordinator/classroom/classes",
|
||||
"componentPath": "@/views/coordinator/Classroom/ClassList",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Classroom.List"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.classroom.classroom",
|
||||
"path": "/admin/coordinator/classroom/room/:id",
|
||||
"componentPath": "@/views/coordinator/Classroom/RoomDetail",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Classroom.RoomDetail"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.classroom.planning",
|
||||
"path": "/admin/coordinator/classroom/planning/:id",
|
||||
"componentPath": "@/views/coordinator/Classroom/PlanningPage",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Classroom.Planning"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.exams",
|
||||
"path": "/admin/coordinator/exams",
|
||||
"componentPath": "@/views/coordinator/Exams",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Exams"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.examDetail",
|
||||
"path": "/admin/coordinator/exam/:id",
|
||||
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Exams"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.assignments",
|
||||
"path": "/admin/coordinator/assignments",
|
||||
"componentPath": "@/views/coordinator/Assignments",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Assignments"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.assignmentDetail",
|
||||
"path": "/admin/coordinator/assignment/:id",
|
||||
"componentPath": "@/views/coordinator/ExamInterface/ExamInterface",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Assignments"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.tests",
|
||||
"path": "/admin/coordinator/tests",
|
||||
"componentPath": "@/views/coordinator/Tests",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Tests"]
|
||||
},
|
||||
{
|
||||
"key": "admin.coordinator.testDetail",
|
||||
"path": "/admin/coordinator/test/:id",
|
||||
"componentPath": "@/views/coordinator/ExamInterface/PDFTestInterface",
|
||||
"routeType": "protected",
|
||||
"authority": ["App.Coordinator.Tests"]
|
||||
},
|
||||
{
|
||||
"key": "admin.devexpressReportView",
|
||||
"path": "/admin/reports/:id/view",
|
||||
|
|
@ -457,17 +387,6 @@
|
|||
}
|
||||
],
|
||||
"Menus": [
|
||||
{
|
||||
"ParentCode": null,
|
||||
"Code": "App.Platform",
|
||||
"DisplayName": "App.Platform",
|
||||
"Order": 10000,
|
||||
"Url": null,
|
||||
"Icon": "FcTabletAndroid",
|
||||
"RequiredPermissionName": null,
|
||||
"IsDisabled": false,
|
||||
"ShortName": "Plat"
|
||||
},
|
||||
{
|
||||
"ParentCode": null,
|
||||
"Code": "App.Saas",
|
||||
|
|
@ -479,31 +398,11 @@
|
|||
"IsDisabled": false,
|
||||
"ShortName": "Sas"
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "AbpTenantManagement.Tenants",
|
||||
"DisplayName": "AbpTenantManagement.Tenants",
|
||||
"Order": 1,
|
||||
"Url": "/admin/list/AbpTenantManagement.Tenants",
|
||||
"Icon": "FcDepartment",
|
||||
"RequiredPermissionName": "AbpTenantManagement.Tenants",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Branches",
|
||||
"DisplayName": "App.Branches",
|
||||
"Order": 2,
|
||||
"Url": "/admin/list/App.Branches",
|
||||
"Icon": "FcTreeStructure",
|
||||
"RequiredPermissionName": "App.Branches",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.AiBot",
|
||||
"DisplayName": "App.AiBot",
|
||||
"Order": 3,
|
||||
"Order": 1,
|
||||
"Url": "/admin/list/App.AiBot",
|
||||
"Icon": "FcMindMap",
|
||||
"RequiredPermissionName": "App.AiBot",
|
||||
|
|
@ -511,26 +410,6 @@
|
|||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Settings",
|
||||
"DisplayName": "App.Settings",
|
||||
"Order": 4,
|
||||
"Url": null,
|
||||
"Icon": "FcCircuit",
|
||||
"RequiredPermissionName": null,
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Settings",
|
||||
"Code": "App.Settings.SettingDefinitions",
|
||||
"DisplayName": "App.Settings.SettingDefinitions",
|
||||
"Order": 1,
|
||||
"Url": "/admin/list/App.Settings.SettingDefinitions",
|
||||
"Icon": "FcSupport",
|
||||
"RequiredPermissionName": "App.Settings.SettingDefinitions",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Settings",
|
||||
"Code": "App.Settings.GlobalSearch",
|
||||
"DisplayName": "App.Settings.GlobalSearch",
|
||||
"Order": 2,
|
||||
|
|
@ -539,11 +418,41 @@
|
|||
"RequiredPermissionName": "App.Settings.GlobalSearch",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "AbpTenantManagement.Tenants",
|
||||
"DisplayName": "AbpTenantManagement.Tenants",
|
||||
"Order": 3,
|
||||
"Url": "/admin/list/AbpTenantManagement.Tenants",
|
||||
"Icon": "FcDepartment",
|
||||
"RequiredPermissionName": "AbpTenantManagement.Tenants",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Branches",
|
||||
"DisplayName": "App.Branches",
|
||||
"Order": 4,
|
||||
"Url": "/admin/list/App.Branches",
|
||||
"Icon": "FcTreeStructure",
|
||||
"RequiredPermissionName": "App.Branches",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Settings.SettingDefinitions",
|
||||
"DisplayName": "App.Settings.SettingDefinitions",
|
||||
"Order": 5,
|
||||
"Url": "/admin/list/App.Settings.SettingDefinitions",
|
||||
"Icon": "FcSupport",
|
||||
"RequiredPermissionName": "App.Settings.SettingDefinitions",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Languages",
|
||||
"DisplayName": "App.Languages",
|
||||
"Order": 5,
|
||||
"Order": 6,
|
||||
"Url": null,
|
||||
"Icon": "FcGlobe",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -571,39 +480,19 @@
|
|||
},
|
||||
{
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Listforms",
|
||||
"DisplayName": "App.Listforms",
|
||||
"Order": 8,
|
||||
"Url": null,
|
||||
"Icon": "FcList",
|
||||
"RequiredPermissionName": null,
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Listforms",
|
||||
"Code": "App.Listforms.DataSource",
|
||||
"DisplayName": "App.Listforms.DataSource",
|
||||
"Order": 1,
|
||||
"Order": 7,
|
||||
"Url": "/admin/list/App.Listforms.DataSource",
|
||||
"Icon": "FcAcceptDatabase",
|
||||
"RequiredPermissionName": "App.Listforms.DataSource",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Listforms",
|
||||
"Code": "App.Listforms.Wizard",
|
||||
"DisplayName": "App.Listforms.Wizard",
|
||||
"Order": 2,
|
||||
"Url": "/admin/listform/wizard",
|
||||
"Icon": "FcFlashAuto",
|
||||
"RequiredPermissionName": "App.Listforms.Wizard",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Listforms",
|
||||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Listforms.Listform",
|
||||
"DisplayName": "App.Listforms.Listform",
|
||||
"Order": 3,
|
||||
"Order": 9,
|
||||
"Url": "/admin/list/App.Listforms.Listform",
|
||||
"Icon": "FcDataSheet",
|
||||
"RequiredPermissionName": "App.Listforms.Listform",
|
||||
|
|
@ -613,7 +502,7 @@
|
|||
"ParentCode": "App.Saas",
|
||||
"Code": "App.Notifications",
|
||||
"DisplayName": "App.Notifications",
|
||||
"Order": 9,
|
||||
"Order": 10,
|
||||
"Url": null,
|
||||
"Icon": "FcWorkflow",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -643,7 +532,7 @@
|
|||
"ParentCode": "App.Saas",
|
||||
"Code": "App.BackgroundWorkers",
|
||||
"DisplayName": "App.BackgroundWorkers",
|
||||
"Order": 10,
|
||||
"Order": 11,
|
||||
"Url": "/admin/list/App.BackgroundWorkers",
|
||||
"Icon": "FcScatterPlot",
|
||||
"RequiredPermissionName": "App.BackgroundWorkers",
|
||||
|
|
@ -653,7 +542,7 @@
|
|||
"ParentCode": "App.Saas",
|
||||
"Code": "App.ForumManagement",
|
||||
"DisplayName": "App.ForumManagement",
|
||||
"Order": 11,
|
||||
"Order": 12,
|
||||
"Url": "/admin/forumManagement",
|
||||
"Icon": "FcReading",
|
||||
"RequiredPermissionName": "App.ForumManagement",
|
||||
|
|
@ -880,21 +769,11 @@
|
|||
"RequiredPermissionName": "App.AuditLogs",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Forum",
|
||||
"DisplayName": "App.Forum",
|
||||
"Order": 4,
|
||||
"Url": "/admin/forum",
|
||||
"Icon": "FcLink",
|
||||
"RequiredPermissionName": "App.ForumManagement.Publish",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Public",
|
||||
"DisplayName": "App.Public",
|
||||
"Order": 6,
|
||||
"Order": 4,
|
||||
"Url": null,
|
||||
"Icon": "FcGenealogy",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -1000,11 +879,21 @@
|
|||
"RequiredPermissionName": "App.Contact",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Listforms.Wizard",
|
||||
"DisplayName": "App.Listforms.Wizard",
|
||||
"Order": 5,
|
||||
"Url": "/admin/listform/wizard",
|
||||
"Icon": "FcFlashAuto",
|
||||
"RequiredPermissionName": "App.Listforms.Wizard",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Routes",
|
||||
"DisplayName": "App.Routes",
|
||||
"Order": 7,
|
||||
"Order": 6,
|
||||
"Url": "/admin/list/App.Routes",
|
||||
"Icon": "FaSynagogue",
|
||||
"RequiredPermissionName": "App.Routes",
|
||||
|
|
@ -1014,7 +903,7 @@
|
|||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Menus",
|
||||
"DisplayName": "App.Menus",
|
||||
"Order": 8,
|
||||
"Order": 7,
|
||||
"Url": null,
|
||||
"Icon": "FaSchlix",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -1044,7 +933,7 @@
|
|||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Files",
|
||||
"DisplayName": "App.Files",
|
||||
"Order": 9,
|
||||
"Order": 8,
|
||||
"Url": "/admin/files",
|
||||
"Icon": "FcFolder",
|
||||
"RequiredPermissionName": "App.Files",
|
||||
|
|
@ -1054,7 +943,7 @@
|
|||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Reports.Management",
|
||||
"DisplayName": "App.Reports.Management",
|
||||
"Order": 10,
|
||||
"Order": 9,
|
||||
"Url": null,
|
||||
"Icon": "FcDocument",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -1084,7 +973,7 @@
|
|||
"ParentCode": "App.Administration",
|
||||
"Code": "App.DeveloperKit",
|
||||
"DisplayName": "App.DeveloperKit",
|
||||
"Order": 11,
|
||||
"Order": 10,
|
||||
"Url": null,
|
||||
"Icon": "FcAndroidOs",
|
||||
"RequiredPermissionName": null,
|
||||
|
|
@ -1161,14 +1050,24 @@
|
|||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"ParentCode": "App.DeveloperKit",
|
||||
"Code": "App.SqlQueryManager",
|
||||
"DisplayName": "App.SqlQueryManager",
|
||||
"Order": 13,
|
||||
"Order": 8,
|
||||
"Url": "/admin/sqlQueryManager",
|
||||
"Icon": "FaDatabase",
|
||||
"RequiredPermissionName": "App.SqlQueryManager",
|
||||
"IsDisabled": false
|
||||
},
|
||||
{
|
||||
"ParentCode": "App.Administration",
|
||||
"Code": "App.Forum",
|
||||
"DisplayName": "App.Forum",
|
||||
"Order": 11,
|
||||
"Url": "/admin/forum",
|
||||
"Icon": "FcLink",
|
||||
"RequiredPermissionName": "App.ForumManagement.Publish",
|
||||
"IsDisabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,22 +7,9 @@
|
|||
{
|
||||
"Name": "App.Administration",
|
||||
"DisplayName": "App.Administration"
|
||||
},
|
||||
{
|
||||
"Name": "App.Platform",
|
||||
"DisplayName": "App.Platform"
|
||||
}
|
||||
],
|
||||
"PermissionDefinitionRecords": [
|
||||
{
|
||||
"GroupName": "App.Platform",
|
||||
"Name": "Abp.Identity.Ai",
|
||||
"ParentName": null,
|
||||
"DisplayName": "Abp.Identity.Ai",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp|Kurs"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Saas",
|
||||
"Name": "AbpTenantManagement.Tenants",
|
||||
|
|
@ -221,6 +208,15 @@
|
|||
"MultiTenancySide": 2,
|
||||
"MenuGroup": "Erp|Kurs"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Saas",
|
||||
"Name": "App.AiBot.Asistant",
|
||||
"ParentName": "App.AiBot",
|
||||
"DisplayName": "App.AiBot.Asistant",
|
||||
"IsEnabled": true,
|
||||
"MultiTenancySide": 3,
|
||||
"MenuGroup": "Erp|Kurs"
|
||||
},
|
||||
{
|
||||
"GroupName": "App.Saas",
|
||||
"Name": "App.AiBot.Update",
|
||||
|
|
|
|||
|
|
@ -10,4 +10,3 @@ public class DataSource : FullAuditedEntity<Guid>
|
|||
public DataSourceTypeEnum DataSourceType { get; set; }
|
||||
public string ConnectionString { get; set; }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "sozsoft-platform-ui",
|
||||
"private": true,
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.4",
|
||||
"elstarVersion": "2.1.6",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
.menu-item {
|
||||
@apply cursor-pointer font-medium rounded-md flex items-center w-full whitespace-nowrap px-1.3;
|
||||
@apply cursor-pointer font-semibold px-1 rounded-md flex items-center w-full whitespace-nowrap gap-x-1.5;
|
||||
|
||||
&.menu-item-light {
|
||||
@apply text-gray-600;
|
||||
|
|
|
|||
|
|
@ -10,14 +10,14 @@ const AiAssistant = () => {
|
|||
const navigate = useNavigate()
|
||||
const { checkPermissions } = usePermission()
|
||||
|
||||
const canViewAi = checkPermissions(['Abp.Identity.Ai'])
|
||||
const canViewAi = checkPermissions(['App.AiBot.Asistant'])
|
||||
|
||||
if (!canViewAi) {
|
||||
return null
|
||||
}
|
||||
|
||||
return (
|
||||
<Tooltip title={translate('::Abp.Identity.Ai')}>
|
||||
<Tooltip title={translate('::App.AiBot.Asistant')}>
|
||||
<div
|
||||
onClick={() => navigate(ROUTES_ENUM.protected.admin.ai)}
|
||||
className="flex items-center justify-center text-2xl m-1 rounded-full hover:bg-gray-100 dark:hover:bg-gray-700 cursor-pointer transition-colors duration-200"
|
||||
|
|
|
|||
|
|
@ -10,12 +10,11 @@ import {
|
|||
} from '@/constants/navigation.constant'
|
||||
import useMenuActive from '@/utils/hooks/useMenuActive'
|
||||
import { useEffect, useState } from 'react'
|
||||
import { Link, useLocation } from 'react-router-dom'
|
||||
import { useLocation } from 'react-router-dom'
|
||||
import VerticalCollapsedMenuItem from './VerticalCollapsedMenuItem'
|
||||
import VerticalSingleMenuItem from './VerticalSingleMenuItem'
|
||||
import MenuCollapse from '@/components/ui/Menu/MenuCollapse'
|
||||
import VerticalMenuIcon from './VerticalMenuIcon'
|
||||
import { MenuItem } from '@/components/ui'
|
||||
|
||||
export interface VerticalMenuContentProps {
|
||||
navMode: NavMode
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ const Assistant = () => {
|
|||
<Container>
|
||||
<Helmet
|
||||
titleTemplate={`%s | ${APP_NAME}`}
|
||||
title={translate('::' + 'Abp.Identity.Ai')}
|
||||
title={translate('::' + 'App.AiBot.Asistant')}
|
||||
defaultTitle={APP_NAME}
|
||||
></Helmet>
|
||||
|
||||
|
|
|
|||
|
|
@ -620,6 +620,10 @@ const Grid = (props: GridProps) => {
|
|||
}, [listFormCode, storageKey])
|
||||
|
||||
useEffect(() => {
|
||||
// React state'i sıfırla - eski değerlerin customLoadState'i erken tetiklemesini önle
|
||||
setGridDataSource(undefined)
|
||||
setColumnData(undefined)
|
||||
|
||||
if (gridRef?.current) {
|
||||
const instance = gridRef?.current?.instance()
|
||||
if (instance) {
|
||||
|
|
@ -773,9 +777,7 @@ const Grid = (props: GridProps) => {
|
|||
}, [gridDto, config])
|
||||
|
||||
useEffect(() => {
|
||||
if (memoizedColumns) {
|
||||
setColumnData(memoizedColumns)
|
||||
}
|
||||
setColumnData(memoizedColumns)
|
||||
}, [memoizedColumns])
|
||||
|
||||
// DataSource oluştur - sadece gridDto değiştiğinde
|
||||
|
|
@ -792,9 +794,7 @@ const Grid = (props: GridProps) => {
|
|||
}, [gridDto, listFormCode, createSelectDataSource])
|
||||
|
||||
useEffect(() => {
|
||||
if (memoizedDataSource) {
|
||||
setGridDataSource(memoizedDataSource)
|
||||
}
|
||||
setGridDataSource(memoizedDataSource)
|
||||
}, [memoizedDataSource])
|
||||
|
||||
// Grid columns'ı set et - sadece columnData değiştiğinde
|
||||
|
|
@ -807,44 +807,41 @@ const Grid = (props: GridProps) => {
|
|||
}
|
||||
}, [columnData])
|
||||
|
||||
// Grid dataSource'u set et - sadece gridDataSource değiştiğinde
|
||||
useEffect(() => {
|
||||
if (!gridDataSource || !gridRef?.current) return
|
||||
|
||||
const instance = gridRef?.current?.instance()
|
||||
if (instance) {
|
||||
instance.option('remoteOperations', {
|
||||
paging: true,
|
||||
filtering: true,
|
||||
sorting: true,
|
||||
grouping: false,
|
||||
summary: false,
|
||||
})
|
||||
instance.option('dataSource', gridDataSource)
|
||||
}
|
||||
}, [gridDataSource])
|
||||
|
||||
// listFormCode'u ref'e kaydet
|
||||
useEffect(() => {
|
||||
refListFormCode.current = listFormCode
|
||||
}, [listFormCode])
|
||||
|
||||
// Component mount olduğunda state'i bir kez yükle
|
||||
// State yükle + DataSource'u tek seferde set et → tek bir veri çekimi
|
||||
// customLoadState önce çalışır, state grid'e uygulandıktan SONRA dataSource set edilir
|
||||
useEffect(() => {
|
||||
if (!gridDto || !gridRef?.current || !gridDataSource || !columnData) return
|
||||
|
||||
const instance = gridRef?.current?.instance()
|
||||
if (instance) {
|
||||
customLoadState()
|
||||
.then((state) => {
|
||||
if (state) {
|
||||
instance.state(state)
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('State load error:', err)
|
||||
})
|
||||
if (!instance) return
|
||||
|
||||
const remoteOps = {
|
||||
paging: true,
|
||||
filtering: true,
|
||||
sorting: true,
|
||||
grouping: false,
|
||||
summary: false,
|
||||
}
|
||||
|
||||
customLoadState()
|
||||
.then((state) => {
|
||||
instance.option('remoteOperations', remoteOps)
|
||||
// State varsa dataSource set edilmeden ÖNCE uygula → tek veri çekimi
|
||||
if (state) {
|
||||
instance.state(state)
|
||||
}
|
||||
instance.option('dataSource', gridDataSource)
|
||||
})
|
||||
.catch((err) => {
|
||||
console.error('State load error:', err)
|
||||
instance.option('remoteOperations', remoteOps)
|
||||
instance.option('dataSource', gridDataSource)
|
||||
})
|
||||
}, [gridDto, gridDataSource, columnData])
|
||||
|
||||
// StateStoring'i devre dışı bırak - manuel kaydetme kullanılacak
|
||||
|
|
|
|||
Loading…
Reference in a new issue