From 6f8357471424fa6bf65377400489c7d3484a9016 Mon Sep 17 00:00:00 2001 From: BFLOWS Date: Sat, 18 Apr 2026 19:13:01 +0200 Subject: [PATCH] fix(IstruttoriaQueue): toggle manager view non compariva mai per bug store Due bug correlati risolti: 1. userRole era sempre null. Il codice usava storeGet('getUser') che non esiste nel selectors (sono solo getToken, getRole, getPermissions). Sostituito con storeGet('getRole') che ritorna userData.role.roleType. Effetto: canUseManagerView e sempre false, toggle manager mai visibile, il capo istruttore vede solo 'Nessuna pratica in coda'. 2. managerMode partiva a false anche per manager e superadmin. Ora default true per ROLE_INSTRUCTOR_MANAGER e ROLE_SUPER_ADMIN: partono in vista 'tutte le pratiche' con possibilita riassegnare. Rimosso anche import useMemo non piu usato. Segnalazione Carlo: 'qualcosa non quadra nel profilo del capoistruttore'. --- .../rendicontazione/pages/IstruttoriaQueue.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/modules/rendicontazione/pages/IstruttoriaQueue.js b/src/modules/rendicontazione/pages/IstruttoriaQueue.js index 01ec607..605821f 100644 --- a/src/modules/rendicontazione/pages/IstruttoriaQueue.js +++ b/src/modules/rendicontazione/pages/IstruttoriaQueue.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState, useRef, useMemo } from 'react'; +import React, { useEffect, useState, useRef } from 'react'; import { __ } from '@wordpress/i18n'; import { useNavigate } from 'react-router-dom'; @@ -32,17 +32,22 @@ const IstruttoriaQueue = () => { const [loading, setLoading] = useState(true); // v2 manager view - const [managerMode, setManagerMode] = useState(false); // toggle UI + // Default: manager/superadmin partono in vista 'tutte le pratiche' (managerMode=true). + // Pre-instructor vedono solo la coda attiva (managerMode=false). + const [managerMode, setManagerMode] = useState( + storeGet('getRole') === 'ROLE_INSTRUCTOR_MANAGER' || + storeGet('getRole') === 'ROLE_SUPER_ADMIN' + ); // toggle UI const [managerItems, setManagerItems] = useState([]); const [instructors, setInstructors] = useState([]); const [reassignDialog, setReassignDialog] = useState({ visible: false, practice: null, newInstructorId: null, reason: '' }); const [reassigning, setReassigning] = useState(false); - // Controllo ruolo utente per mostrare toggle manager - const userRole = useMemo(() => { - const user = storeGet('getUser'); - return user?.authorities?.[0] || user?.role || null; - }, []); + // Controllo ruolo utente per mostrare toggle manager. + // storeGet('getRole') ritorna userData.role.roleType (es. ROLE_INSTRUCTOR_MANAGER). + // Fix: il codice precedente usava storeGet('getUser') che non esiste nel selectors, + // quindi canUseManagerView era sempre false e il toggle non compariva mai. + const userRole = storeGet('getRole'); const canUseManagerView = userRole === 'ROLE_INSTRUCTOR_MANAGER' || userRole === 'ROLE_SUPER_ADMIN'; const loadQueue = () => {