mirror of
https://github.com/portainer/portainer.git
synced 2026-06-23 06:30:14 +00:00
34 lines
993 B
TypeScript
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]
|
|
);
|
|
}
|