@@ -10,63 +10,57 @@ import { OrganizationDashboard } from './components/OrganizationDashboard';
1010import type { FleetPolicy , Host } from './types' ;
1111
1212export default async function OrganizationPage ( { params } : { params : Promise < { orgId : string } > } ) {
13- try {
14- const { orgId } = await params ;
15-
16- const session = await auth . api . getSession ( {
17- headers : await headers ( ) ,
18- } ) ;
19-
20- if ( ! session ?. user ) {
21- return redirect ( '/auth' ) ;
22- }
23-
24- let member = null ;
25-
26- try {
27- member = await db . member . findFirst ( {
28- where : {
29- userId : session . user . id ,
30- organizationId : orgId ,
31- deactivated : false ,
32- } ,
33- include : {
34- user : true ,
35- organization : true , // Include organization details
36- } ,
37- } ) ;
38- } catch ( error ) {
39- console . error ( 'Error fetching member:' , error ) ;
40- // Return a fallback UI or redirect to error page
41- return redirect ( '/' ) ;
42- }
43-
44- if ( ! member ) {
45- return redirect ( '/' ) ; // Or appropriate login/auth route
46- }
47-
48- // Only fetch fleet policies if fleet is enabled
49- let fleetPolicies : FleetPolicy [ ] = [ ] ;
50- let device : Host | null = null ;
13+ const { orgId } = await params ;
14+
15+ // Auth check with error handling
16+ const session = await auth . api . getSession ( {
17+ headers : await headers ( ) ,
18+ } ) . catch ( ( error ) => {
19+ console . error ( 'Error getting session:' , error ) ;
20+ redirect ( '/' ) ;
21+ } ) ;
22+
23+ if ( ! session ?. user ) {
24+ redirect ( '/auth' ) ;
25+ }
5126
52- const fleetData = await getFleetPolicies ( member ) ;
53- fleetPolicies = fleetData . fleetPolicies ;
54- device = fleetData . device ;
27+ // Fetch member with error handling
28+ let member ;
5529
56- return (
57- < OrganizationDashboard
58- key = { orgId } // Use organizationId as key
59- organizationId = { orgId }
60- member = { member }
61- fleetPolicies = { fleetPolicies }
62- host = { device }
63- />
64- ) ;
30+ try {
31+ member = await db . member . findFirst ( {
32+ where : {
33+ userId : session . user . id ,
34+ organizationId : orgId ,
35+ deactivated : false ,
36+ } ,
37+ include : {
38+ user : true ,
39+ organization : true ,
40+ } ,
41+ } ) ;
6542 } catch ( error ) {
66- console . error ( 'Error in OrganizationPage:' , { error } ) ;
67- // Redirect to a safe page if there's an unexpected error
68- return redirect ( '/' ) ;
43+ console . error ( 'Error fetching member:' , error ) ;
44+ redirect ( '/' ) ;
45+ }
46+
47+ // Member check - redirect happens outside try-catch
48+ if ( ! member ) {
49+ redirect ( '/' ) ;
6950 }
51+
52+ // Fleet policies - already has graceful error handling in getFleetPolicies
53+ const fleetData = await getFleetPolicies ( member ) ;
54+
55+ return (
56+ < OrganizationDashboard
57+ key = { orgId }
58+ organizationId = { orgId }
59+ member = { member }
60+ fleetPolicies = { fleetData . fleetPolicies }
61+ host = { fleetData . device }
62+ />
63+ ) ;
7064}
7165
7266const getFleetPolicies = async (
0 commit comments