Menu Manager ekranındaki PermissionList çağrısı düzeltildi.

This commit is contained in:
Sedat Öztürk 2025-08-16 19:16:55 +03:00
parent 837bf1e72f
commit f317351cfe
2 changed files with 28 additions and 22 deletions

View file

@ -19,11 +19,11 @@ import {
} from '@/components/ui'
import { Field, FieldProps, Form, Formik } from 'formik'
import { SelectBoxOption } from '@/shared/types'
import { getPermissionsList } from '@/services/identity.service'
import { PermissionDefinitionRecord } from '@/proxy/admin/models'
import * as Yup from 'yup'
import { ExternalLink, FileText, Plus, Trash2 } from 'lucide-react'
import { MenuDto } from '@/proxy/menus/models'
import { getPermissionsList } from '@/services/identity.service'
interface MenuItemComponentProps {
item: MenuItem
@ -32,6 +32,7 @@ interface MenuItemComponentProps {
children?: React.ReactNode
isDragOverlay?: boolean
refetch: () => void
permissions: SelectBoxOption[]
}
export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
@ -41,8 +42,8 @@ export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
children,
isDragOverlay = false,
refetch,
permissions,
}) => {
const [permissions, setPermissions] = useState<SelectBoxOption[]>([])
const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({
id: item.id || '',
data: {
@ -72,6 +73,8 @@ export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
opacity: isDragging ? 0.5 : 1,
}
console.log('Style', style)
const [isExpanded, setIsExpanded] = useState(true)
const [isModalOpen, setIsModalOpen] = useState(false)
const [formData, setFormData] = useState<Partial<MenuDto>>({
@ -107,24 +110,6 @@ export const MenuItemComponent: React.FC<MenuItemComponentProps> = ({
refetch()
}
const getPermissionList = async () => {
const response = await getPermissionsList()
if (response.data) {
setPermissions(
response.data.map((permission: PermissionDefinitionRecord) => ({
value: permission.name,
label: permission.name,
})),
)
}
}
useEffect(() => {
if (permissions) {
getPermissionList()
}
}, [permissions])
return (
<div className="select-none">
<div

View file

@ -1,4 +1,4 @@
import React from 'react'
import React, { useEffect, useState } from 'react'
import {
DndContext,
DragOverlay,
@ -17,6 +17,9 @@ import {
} from '@dnd-kit/sortable'
import { MenuItemComponent } from './MenuItemComponent'
import { MenuItem } from '@/@types/menu'
import { getPermissionsList } from '@/services/identity.service'
import { PermissionDefinitionRecord } from '@/proxy/admin/models'
import { SelectBoxOption } from '@/shared/types'
interface SortableMenuTreeProps {
items: MenuItem[]
@ -31,6 +34,7 @@ export const SortableMenuTree: React.FC<SortableMenuTreeProps> = ({
isDesignMode,
refetch,
}) => {
const [permissions, setPermissions] = useState<SelectBoxOption[]>([])
const [activeItem, setActiveItem] = React.useState<MenuItem | null>(null)
const sensors = useSensors(
@ -170,10 +174,26 @@ export const SortableMenuTree: React.FC<SortableMenuTreeProps> = ({
onItemsChange(finalItems)
}
useEffect(() => {
const fetchPermissions = async () => {
const response = await getPermissionsList()
if (response.data) {
setPermissions(
response.data.map((p: PermissionDefinitionRecord) => ({
value: p.name,
label: p.name,
})),
)
}
}
fetchPermissions()
}, [])
const renderMenuItem = (item: MenuItem, depth: number = 0): React.ReactNode => {
return (
<div key={item.id}>
<MenuItemComponent item={item} isDesignMode={isDesignMode} depth={depth} refetch={refetch}>
<MenuItemComponent item={item} isDesignMode={isDesignMode} depth={depth} refetch={refetch} permissions={permissions}>
{Array.isArray(item.children) && item.children.length > 0 && (
<SortableContext
items={item.children
@ -208,6 +228,7 @@ export const SortableMenuTree: React.FC<SortableMenuTreeProps> = ({
depth={0}
isDragOverlay={true}
refetch={refetch}
permissions={permissions}
/>
) : null}
</DragOverlay>