Files
portainer/app/react/docker/stacks/CreateView/CreateStackForm/useValidationSchema.ts
T
2026-06-11 18:53:24 -03:00

34 lines
993 B
TypeScript

import { useMemo } from 'react';
import _ from 'lodash';
import { EnvironmentId } from '@/react/portainer/environments/types';
import { useStacks } from '@/react/common/stacks/queries/useStacks';
import { useContainers } from '@/react/docker/containers/queries/useContainers';
import { useIsEdgeAdmin } from '@/react/hooks/useUser';
import { getValidationSchema } from './validation';
export function useValidationSchema(environmentId: EnvironmentId) {
const { isAdmin } = useIsEdgeAdmin();
const stacksQuery = useStacks();
const containersQuery = useContainers(environmentId, {
select: (containers) =>
containers.flatMap((c) => c.Names).map((name) => _.trimStart(name, '/')),
});
const containerNames = containersQuery.data;
const stacks = stacksQuery.data;
return useMemo(
() =>
getValidationSchema({
isAdmin,
environmentId,
stacks,
containerNames,
}),
[isAdmin, environmentId, stacks, containerNames]
);
}