Use an enum

This commit is contained in:
shamoon
2026-02-08 23:31:46 -08:00
parent 8d694388cd
commit 1f64f6caff
2 changed files with 21 additions and 11 deletions

View File

@@ -14,7 +14,10 @@ import {
PermissionsService, PermissionsService,
PermissionType, PermissionType,
} from 'src/app/services/permissions.service' } from 'src/app/services/permissions.service'
import { DocumentAttributesComponent } from './document-attributes.component' import {
DocumentAttributesComponent,
DocumentAttributesSectionKind,
} from './document-attributes.component'
@Component({ @Component({
selector: 'pngx-dummy-section', selector: 'pngx-dummy-section',
@@ -69,7 +72,7 @@ describe('DocumentAttributesComponent', () => {
label: 'Tags', label: 'Tags',
icon: 'tags', icon: 'tags',
permissionType: PermissionType.Tag, permissionType: PermissionType.Tag,
kind: 'attributeList', kind: DocumentAttributesSectionKind.ManagementList,
component: DummySectionComponent, component: DummySectionComponent,
}, },
{ {
@@ -78,7 +81,7 @@ describe('DocumentAttributesComponent', () => {
label: 'Custom fields', label: 'Custom fields',
icon: 'ui-radios', icon: 'ui-radios',
permissionType: PermissionType.CustomField, permissionType: PermissionType.CustomField,
kind: 'customFields', kind: DocumentAttributesSectionKind.CustomFields,
component: DummySectionComponent, component: DummySectionComponent,
}, },
] ]

View File

@@ -40,7 +40,10 @@ enum DocumentAttributesNavIDs {
CustomFields = 5, CustomFields = 5,
} }
type DocumentAttributesSectionKind = 'attributeList' | 'customFields' export enum DocumentAttributesSectionKind {
ManagementList = 'managementList',
CustomFields = 'customFields',
}
interface DocumentAttributesSection { interface DocumentAttributesSection {
id: DocumentAttributesNavIDs id: DocumentAttributesNavIDs
@@ -87,7 +90,7 @@ export class DocumentAttributesComponent
icon: 'tags', icon: 'tags',
infoLink: 'usage/#terms-and-definitions', infoLink: 'usage/#terms-and-definitions',
permissionType: PermissionType.Tag, permissionType: PermissionType.Tag,
kind: 'attributeList', kind: DocumentAttributesSectionKind.ManagementList,
component: TagListComponent, component: TagListComponent,
}, },
{ {
@@ -97,7 +100,7 @@ export class DocumentAttributesComponent
icon: 'person', icon: 'person',
infoLink: 'usage/#terms-and-definitions', infoLink: 'usage/#terms-and-definitions',
permissionType: PermissionType.Correspondent, permissionType: PermissionType.Correspondent,
kind: 'attributeList', kind: DocumentAttributesSectionKind.ManagementList,
component: CorrespondentListComponent, component: CorrespondentListComponent,
}, },
{ {
@@ -107,7 +110,7 @@ export class DocumentAttributesComponent
icon: 'hash', icon: 'hash',
infoLink: 'usage/#terms-and-definitions', infoLink: 'usage/#terms-and-definitions',
permissionType: PermissionType.DocumentType, permissionType: PermissionType.DocumentType,
kind: 'attributeList', kind: DocumentAttributesSectionKind.ManagementList,
component: DocumentTypeListComponent, component: DocumentTypeListComponent,
}, },
{ {
@@ -117,7 +120,7 @@ export class DocumentAttributesComponent
icon: 'folder', icon: 'folder',
infoLink: 'usage/#terms-and-definitions', infoLink: 'usage/#terms-and-definitions',
permissionType: PermissionType.StoragePath, permissionType: PermissionType.StoragePath,
kind: 'attributeList', kind: DocumentAttributesSectionKind.ManagementList,
component: StoragePathListComponent, component: StoragePathListComponent,
}, },
{ {
@@ -127,7 +130,7 @@ export class DocumentAttributesComponent
icon: 'ui-radios', icon: 'ui-radios',
infoLink: 'usage/#custom-fields', infoLink: 'usage/#custom-fields',
permissionType: PermissionType.CustomField, permissionType: PermissionType.CustomField,
kind: 'customFields', kind: DocumentAttributesSectionKind.CustomFields,
component: CustomFieldsComponent, component: CustomFieldsComponent,
}, },
] ]
@@ -156,13 +159,17 @@ export class DocumentAttributesComponent
} }
get activeAttributeList(): ManagementListComponent<any> | null { get activeAttributeList(): ManagementListComponent<any> | null {
if (this.activeSection?.kind !== 'attributeList') return null if (
this.activeSection?.kind !== DocumentAttributesSectionKind.ManagementList
)
return null
const instance = this.activeOutlet?.componentInstance const instance = this.activeOutlet?.componentInstance
return instance instanceof ManagementListComponent ? instance : null return instance instanceof ManagementListComponent ? instance : null
} }
get activeCustomFields(): CustomFieldsComponent | null { get activeCustomFields(): CustomFieldsComponent | null {
if (this.activeSection?.kind !== 'customFields') return null if (this.activeSection?.kind !== DocumentAttributesSectionKind.CustomFields)
return null
const instance = this.activeOutlet?.componentInstance const instance = this.activeOutlet?.componentInstance
return instance instanceof CustomFieldsComponent ? instance : null return instance instanceof CustomFieldsComponent ? instance : null
} }