task-fix-display2

This commit is contained in:
phaichayon
2026-06-29 08:24:10 +07:00
parent 071293b60f
commit 2540d52670
9 changed files with 532 additions and 163 deletions

View File

@@ -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>

View File

@@ -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>