fix: speed up document type group loading
This commit is contained in:
@@ -11,7 +11,7 @@ import {
|
||||
type DocumentType,
|
||||
type EntryModuleOption,
|
||||
} from "~/api/document-types/document-types";
|
||||
import { getDocumentSubtypeGroups, type DocumentSubtypeGroup } from "~/api/files/files-upload";
|
||||
import { getDocumentSubtypeGroupsMap, type DocumentSubtypeGroup } from "~/api/files/files-upload";
|
||||
import documentTypesStyles from "~/styles/pages/document-types_index.css?url";
|
||||
|
||||
export function links() {
|
||||
@@ -44,17 +44,15 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
]);
|
||||
|
||||
const types = typesRes.data?.types || [];
|
||||
const subtypeGroupEntries = await Promise.all(
|
||||
types.map(async (type) => {
|
||||
const groupsRes = await getDocumentSubtypeGroups(type.id, frontendJWT, type.entryModuleId || undefined);
|
||||
return [type.id, "data" in groupsRes && groupsRes.data ? groupsRes.data : []] as const;
|
||||
}),
|
||||
const subtypeGroupsRes = await getDocumentSubtypeGroupsMap(
|
||||
types.map((type) => type.id),
|
||||
frontendJWT,
|
||||
);
|
||||
|
||||
return {
|
||||
types,
|
||||
entryModules: modulesRes.data || [],
|
||||
subtypeGroupsByTypeId: Object.fromEntries(subtypeGroupEntries),
|
||||
subtypeGroupsByTypeId: "data" in subtypeGroupsRes && subtypeGroupsRes.data ? subtypeGroupsRes.data : {},
|
||||
frontendJWT,
|
||||
};
|
||||
} catch (error) {
|
||||
|
||||
@@ -16,7 +16,7 @@ import {
|
||||
type EntryModuleOption,
|
||||
type RuleSetOption,
|
||||
} from "~/api/document-types/document-types";
|
||||
import { getDocumentSubtypeGroups, type DocumentSubtypeGroup } from "~/api/files/files-upload";
|
||||
import { getDocumentSubtypeGroupsMap, type DocumentSubtypeGroup } from "~/api/files/files-upload";
|
||||
import newStyles from "~/styles/pages/document-types_new.css?url";
|
||||
|
||||
export function links() {
|
||||
@@ -52,9 +52,9 @@ export async function loader({ request }: LoaderFunctionArgs) {
|
||||
const res = await getDocumentType(parseInt(editId), frontendJWT);
|
||||
editType = res.data || null;
|
||||
if (editType?.id) {
|
||||
const groupsRes = await getDocumentSubtypeGroups(editType.id, frontendJWT, editType.entryModuleId || undefined);
|
||||
const groupsRes = await getDocumentSubtypeGroupsMap([editType.id], frontendJWT);
|
||||
if ("data" in groupsRes && groupsRes.data) {
|
||||
runtimeSubtypeGroups = groupsRes.data;
|
||||
runtimeSubtypeGroups = groupsRes.data[editType.id] || [];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user