переделка компании и департамента
This commit is contained in:
@@ -4,6 +4,7 @@ import type { IApprovalAdminProps } from './IApprovalAdminProps';
|
||||
import { AdminApp } from './app/AdminApp';
|
||||
import { ApprovalRouteApi } from '../services/api';
|
||||
import { AadApiHttpClient, DevApiHttpClient, IHttpClient } from '../services/httpClient';
|
||||
import { PortalDictionaryClient } from '../services/portalDictionary';
|
||||
|
||||
const FONTS_LINK_ID = 'tnsu-approval-admin-fonts';
|
||||
|
||||
@@ -26,6 +27,7 @@ async function createHttpClient(props: IApprovalAdminProps): Promise<IHttpClient
|
||||
|
||||
const ApprovalAdmin: React.FC<IApprovalAdminProps> = props => {
|
||||
const [api, setApi] = React.useState<ApprovalRouteApi | undefined>();
|
||||
const [dictionary, setDictionary] = React.useState<PortalDictionaryClient | undefined>();
|
||||
const [error, setError] = React.useState<string | undefined>();
|
||||
|
||||
React.useEffect(() => {
|
||||
@@ -45,6 +47,24 @@ const ApprovalAdmin: React.FC<IApprovalAdminProps> = props => {
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [props.useDevAuth, props.apiBaseUrl, props.devUserEmail, props.aadResourceId]);
|
||||
|
||||
// Справочники всегда идут через AAD, независимо от Dev-режима нашего API:
|
||||
// api.tnsu.kz принимает только настоящий токен, заголовок X-Dev-User-Email
|
||||
// ему ничего не говорит.
|
||||
React.useEffect(() => {
|
||||
let cancelled = false;
|
||||
setDictionary(undefined);
|
||||
|
||||
props.context.aadHttpClientFactory
|
||||
.getClient(props.aadResourceId)
|
||||
.then(client => {
|
||||
if (!cancelled) setDictionary(new PortalDictionaryClient(client, props.portalBaseUrl));
|
||||
})
|
||||
.catch(() => { /* экран маршрутов покажет ошибку загрузки справочника */ });
|
||||
|
||||
return () => { cancelled = true; };
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [props.aadResourceId, props.portalBaseUrl]);
|
||||
|
||||
return (
|
||||
<section className={styles.approvalAdmin}>
|
||||
{error && (
|
||||
@@ -55,7 +75,13 @@ const ApprovalAdmin: React.FC<IApprovalAdminProps> = props => {
|
||||
</div>
|
||||
)}
|
||||
{!error && !api && <div className={styles.stateBox}>Подключение к API...</div>}
|
||||
{api && <AdminApp api={api} currentUserEmail={props.context.pageContext.user.email} />}
|
||||
{api && (
|
||||
<AdminApp
|
||||
api={api}
|
||||
dictionary={dictionary}
|
||||
currentUserEmail={props.context.pageContext.user.email}
|
||||
/>
|
||||
)}
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user