diff --git a/src/views/FeatureFlagsClient.tsx b/src/views/FeatureFlagsClient.tsx index 36c4590..5835c45 100644 --- a/src/views/FeatureFlagsClient.tsx +++ b/src/views/FeatureFlagsClient.tsx @@ -1,4 +1,6 @@ 'use client' +import React from 'react' +import type { ListViewClientProps } from 'payload' import { useState, useEffect, useCallback, useMemo, memo } from 'react' import { useConfig, diff --git a/src/views/FeatureFlagsView.tsx b/src/views/FeatureFlagsView.tsx index 26fa08f..68b6bab 100644 --- a/src/views/FeatureFlagsView.tsx +++ b/src/views/FeatureFlagsView.tsx @@ -1,19 +1,13 @@ -import type { AdminViewServerProps } from 'payload' -import { DefaultTemplate } from '@payloadcms/next/templates' -import { Gutter } from '@payloadcms/ui' +import React from 'react' +import type { ListViewServerProps } from 'payload' import FeatureFlagsClient from './FeatureFlagsClient.js' import type { FeatureFlag } from '../types/index.js' -async function fetchInitialFlags(payload: any, searchParams?: Record): Promise { +async function fetchInitialFlags(payload: any, collectionSlug: string): Promise { try { - const limit = Math.min(1000, parseInt(searchParams?.limit as string) || 100) - const page = Math.max(1, parseInt(searchParams?.page as string) || 1) - const collectionSlug = searchParams?.collectionSlug as string || 'feature-flags' - const result = await payload.find({ collection: collectionSlug, - limit, - page, + limit: 1000, sort: 'name', }) @@ -24,131 +18,83 @@ async function fetchInitialFlags(payload: any, searchParams?: Record - -
-

- Authentication Required -

-

- You must be logged in to view the Feature Flags Dashboard. -

- - Go to Login - -
-
- +
+

+ Authentication Required +

+

+ You must be logged in to view the Feature Flags Dashboard. +

+ + Go to Login + +
) } - // Security check: User must have permissions to access feature-flags collection - const collectionSlug = searchParams?.collectionSlug as string || 'feature-flags' - const canReadFeatureFlags = permissions?.collections?.[collectionSlug]?.read + // Security check: User must have permissions to access the collection + const canReadFeatureFlags = permissions?.collections?.[collectionConfig.slug]?.read if (!canReadFeatureFlags) { return ( - - -
-

- Access Denied -

-

- You don't have permission to access the Feature Flags Dashboard. -

-

- Contact your administrator to request access to the feature-flags collection. -

-
-
-
+
+

+ Access Denied +

+

+ You don't have permission to access the Feature Flags Dashboard. +

+

+ Contact your administrator to request access to the {collectionConfig.slug} collection. +

+
) } // Fetch initial data server-side (only if user has access) - const initialFlags = await fetchInitialFlags(initPageResult.req.payload, searchParams) + const initialFlags = await fetchInitialFlags(payload, collectionConfig.slug) - // Check if user can update feature flags (use already defined collection slug) - const canUpdateFeatureFlags = permissions?.collections?.[collectionSlug]?.update || false + // Check if user can update feature flags + const canUpdateFeatureFlags = permissions?.collections?.[collectionConfig.slug]?.update || false - // Use DefaultTemplate with proper props structure from initPageResult return ( - - - - - + ) } \ No newline at end of file