task-fix-display2
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { auth } from '@/auth';
|
||||
import { HydrationBoundary, dehydrate } from '@tanstack/react-query';
|
||||
import PageContainer from '@/components/layout/page-container';
|
||||
import { getUserBranches } from '@/features/foundation/branch-scope/service';
|
||||
import { DocumentSequenceSettings } from '@/features/foundation/document-sequence/components/document-sequence-settings';
|
||||
import { documentSequencesQueryOptions } from '@/features/foundation/document-sequence/queries';
|
||||
import { PERMISSIONS } from '@/lib/auth/rbac';
|
||||
@@ -19,6 +20,11 @@ export default async function DocumentSequencesRoute() {
|
||||
void queryClient.prefetchQuery(documentSequencesQueryOptions());
|
||||
}
|
||||
|
||||
const branches =
|
||||
canRead && session?.user?.activeOrganizationId
|
||||
? await getUserBranches(session.user.activeOrganizationId)
|
||||
: [];
|
||||
|
||||
return (
|
||||
<PageContainer
|
||||
pageTitle='Document Sequences'
|
||||
@@ -32,7 +38,7 @@ export default async function DocumentSequencesRoute() {
|
||||
>
|
||||
{canRead ? (
|
||||
<HydrationBoundary state={dehydrate(queryClient)}>
|
||||
<DocumentSequenceSettings />
|
||||
<DocumentSequenceSettings branches={branches} />
|
||||
</HydrationBoundary>
|
||||
) : null}
|
||||
</PageContainer>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { auth } from '@/auth';
|
||||
import PageContainer from '@/components/layout/page-container';
|
||||
import { MasterOptionsCreateAction } from '@/features/foundation/master-options/components/master-options-create-action';
|
||||
import MasterOptionsListingPage from '@/features/foundation/master-options/components/master-options-listing';
|
||||
import { PERMISSIONS } from '@/lib/auth/rbac';
|
||||
import { searchParamsCache } from '@/lib/searchparams';
|
||||
@@ -12,11 +13,16 @@ type PageProps = {
|
||||
export default async function MasterOptionsRoute(props: PageProps) {
|
||||
const searchParams = await props.searchParams;
|
||||
const session = await auth();
|
||||
const canManageOptions =
|
||||
const canReadOptions =
|
||||
session?.user?.systemRole === 'super_admin' ||
|
||||
(!!session?.user?.activeOrganizationId &&
|
||||
(session.user.activeMembershipRole === 'admin' ||
|
||||
session.user.activePermissions.includes(PERMISSIONS.crmMasterOptionRead)));
|
||||
const canCreateOptions =
|
||||
session?.user?.systemRole === 'super_admin' ||
|
||||
(!!session?.user?.activeOrganizationId &&
|
||||
(session.user.activeMembershipRole === 'admin' ||
|
||||
session.user.activePermissions.includes(PERMISSIONS.crmMasterOptionCreate)));
|
||||
|
||||
searchParamsCache.parse(searchParams);
|
||||
|
||||
@@ -24,12 +30,13 @@ export default async function MasterOptionsRoute(props: PageProps) {
|
||||
<PageContainer
|
||||
pageTitle='Master Options'
|
||||
pageDescription='Organization-scoped CRM option registry for statuses, product types, payment terms, currency, and branch abstractions.'
|
||||
access={canManageOptions}
|
||||
access={canReadOptions}
|
||||
accessFallback={
|
||||
<div className='text-muted-foreground rounded-lg border border-dashed p-8 text-center'>
|
||||
You do not have access to master option management.
|
||||
</div>
|
||||
}
|
||||
pageHeaderAction={canCreateOptions ? <MasterOptionsCreateAction /> : null}
|
||||
>
|
||||
<MasterOptionsListingPage />
|
||||
</PageContainer>
|
||||
|
||||
Reference in New Issue
Block a user