mirror of https://github.com/portainer/portainer
32 lines
775 B
TypeScript
32 lines
775 B
TypeScript
import { useEffect } from 'react';
|
|
|
|
import { useStackFile } from '@/react/common/stacks/queries/useStackFile';
|
|
import { Stack } from '@/react/common/stacks/types';
|
|
|
|
export function useVersionedStackFile({
|
|
stackId,
|
|
version,
|
|
onLoad,
|
|
}: {
|
|
stackId: Stack['Id'];
|
|
version?: string;
|
|
onLoad(content: string): void;
|
|
}) {
|
|
const fileQuery = useStackFile(stackId, { version }, { enabled: !!version });
|
|
useEffect(() => {
|
|
if (fileQuery.isSuccess && fileQuery.data?.StackFileContent) {
|
|
onLoad(fileQuery.data.StackFileContent);
|
|
}
|
|
}, [
|
|
fileQuery.isSuccess,
|
|
fileQuery.data?.StackFileContent,
|
|
onLoad,
|
|
version, // reload on version change
|
|
]);
|
|
|
|
return {
|
|
isLoading: fileQuery.isLoading,
|
|
content: fileQuery.data?.StackFileContent,
|
|
};
|
|
}
|