fix TS build errors and add position-documents API
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
be8757e15e
commit
cae8386544
5 changed files with 75 additions and 5 deletions
|
|
@ -686,6 +686,71 @@ export async function deletePosition(
|
|||
});
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// POSITION-DOCUMENT LINK API
|
||||
// ============================================================================
|
||||
|
||||
export interface TrusteePositionDocument {
|
||||
id: string;
|
||||
positionId: string;
|
||||
documentId: string;
|
||||
mandateId?: string;
|
||||
featureInstanceId?: string;
|
||||
_createdAt?: number;
|
||||
_modifiedAt?: number;
|
||||
[key: string]: any;
|
||||
}
|
||||
|
||||
export async function fetchPositionDocuments(
|
||||
request: ApiRequestFunction,
|
||||
instanceId: string,
|
||||
params?: PaginationParams
|
||||
): Promise<PaginatedResponse<TrusteePositionDocument> | TrusteePositionDocument[]> {
|
||||
return await request({
|
||||
url: `${_getTrusteeBaseUrl(instanceId)}/position-documents`,
|
||||
method: 'get',
|
||||
params: _buildPaginationParams(params)
|
||||
});
|
||||
}
|
||||
|
||||
export async function fetchPositionDocumentById(
|
||||
request: ApiRequestFunction,
|
||||
instanceId: string,
|
||||
linkId: string
|
||||
): Promise<TrusteePositionDocument | null> {
|
||||
try {
|
||||
return await request({
|
||||
url: `${_getTrusteeBaseUrl(instanceId)}/position-documents/${linkId}`,
|
||||
method: 'get'
|
||||
});
|
||||
} catch {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
export async function createPositionDocument(
|
||||
request: ApiRequestFunction,
|
||||
instanceId: string,
|
||||
data: Partial<TrusteePositionDocument>
|
||||
): Promise<TrusteePositionDocument> {
|
||||
return await request({
|
||||
url: `${_getTrusteeBaseUrl(instanceId)}/position-documents`,
|
||||
method: 'post',
|
||||
data
|
||||
});
|
||||
}
|
||||
|
||||
export async function deletePositionDocument(
|
||||
request: ApiRequestFunction,
|
||||
instanceId: string,
|
||||
linkId: string
|
||||
): Promise<void> {
|
||||
await request({
|
||||
url: `${_getTrusteeBaseUrl(instanceId)}/position-documents/${linkId}`,
|
||||
method: 'delete'
|
||||
});
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// ACCOUNTING API
|
||||
// ============================================================================
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import React from 'react';
|
||||
import type { IconType } from 'react-icons';
|
||||
import { useLanguage } from '../../../providers/language/LanguageContext';
|
||||
import styles from './FormGeneratorControls.module.css';
|
||||
import { Button } from '../../UiComponents/Button';
|
||||
|
|
@ -44,7 +45,7 @@ export interface FormGeneratorControlsProps {
|
|||
label: string;
|
||||
onClick: () => void | Promise<void>;
|
||||
loading?: boolean;
|
||||
icon?: React.ReactNode;
|
||||
icon?: IconType;
|
||||
}[];
|
||||
|
||||
// Refresh handler
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
import React, { useState, useMemo, useRef, useEffect, useCallback } from 'react';
|
||||
import type { IconType } from 'react-icons';
|
||||
import { useLanguage } from '../../../providers/language/LanguageContext';
|
||||
import styles from './FormGeneratorTable.module.css';
|
||||
import {
|
||||
|
|
@ -153,7 +154,7 @@ export interface FormGeneratorTableProps<T = any> {
|
|||
label: string;
|
||||
onClick: (rows: T[]) => void | Promise<void>;
|
||||
loading?: boolean;
|
||||
icon?: React.ReactNode;
|
||||
icon?: IconType;
|
||||
}[];
|
||||
onRefresh?: () => void;
|
||||
className?: string;
|
||||
|
|
|
|||
|
|
@ -578,3 +578,6 @@ const positionConfig: TrusteeEntityConfig<TrusteePosition> = {
|
|||
export const useTrusteePositions = _createTrusteeEntityHook(positionConfig);
|
||||
export const useTrusteePositionOperations = _createTrusteeOperationsHook(positionConfig);
|
||||
|
||||
export { useTrusteePositionDocuments, useTrusteePositionDocumentOperations } from './useTrusteePositionDocuments';
|
||||
export type { TrusteePositionDocument } from '../api/trusteeApi';
|
||||
|
||||
|
|
|
|||
|
|
@ -56,8 +56,8 @@ export const TrusteePositionDocumentsView: React.FC = () => {
|
|||
const excludedFields = ['id', 'mandateId', 'featureInstanceId', '_createdBy', '_createdAt', '_modifiedAt', '_modifiedBy'];
|
||||
|
||||
return attributes
|
||||
.filter(attr => !excludedFields.includes(attr.name))
|
||||
.map(attr => {
|
||||
.filter((attr: any) => !excludedFields.includes(attr.name))
|
||||
.map((attr: any) => {
|
||||
// Replace {instanceId} placeholder in options URL
|
||||
let fkSource = attr.options;
|
||||
if (typeof fkSource === 'string' && instanceId) {
|
||||
|
|
@ -133,7 +133,7 @@ export const TrusteePositionDocumentsView: React.FC = () => {
|
|||
// Form attributes (exclude system fields)
|
||||
const formAttributes = useMemo(() => {
|
||||
const excludedFields = ['id', 'mandateId', 'featureInstanceId', '_createdBy', '_createdAt', '_modifiedAt', '_modifiedBy'];
|
||||
return (attributes || []).filter(attr => !excludedFields.includes(attr.name));
|
||||
return (attributes || []).filter((attr: any) => !excludedFields.includes(attr.name));
|
||||
}, [attributes]);
|
||||
|
||||
if (error) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue