mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +01:00
4167a60588
Follows up on https://github.com/Unleash/unleash/pull/4853 to add Biome to the frontend as well. ![image](https://github.com/Unleash/unleash/assets/14320932/1906faf1-fc29-4172-a4d4-b2716d72cd65) Added a few `biome-ignore` to speed up the process but we may want to check and fix them in the future.
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
import { useEffect, useState } from 'react';
|
|
import useEnvironmentApi from 'hooks/api/actions/useEnvironmentApi/useEnvironmentApi';
|
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
|
|
|
const useEnvironmentForm = (initialName = '', initialType = 'development') => {
|
|
const [name, setName] = useState(initialName);
|
|
const [type, setType] = useState(initialType);
|
|
const [errors, setErrors] = useState({});
|
|
|
|
useEffect(() => {
|
|
setName(initialName);
|
|
}, [initialName]);
|
|
|
|
useEffect(() => {
|
|
setType(initialType);
|
|
}, [initialType]);
|
|
|
|
const { validateEnvName } = useEnvironmentApi();
|
|
|
|
const getEnvPayload = () => {
|
|
return {
|
|
name,
|
|
type,
|
|
};
|
|
};
|
|
|
|
const validateEnvironmentName = async () => {
|
|
if (name.length === 0) {
|
|
setErrors((prev) => ({
|
|
...prev,
|
|
name: 'Environment name can not be empty',
|
|
}));
|
|
return false;
|
|
}
|
|
|
|
try {
|
|
await validateEnvName(name);
|
|
return true;
|
|
} catch (error: unknown) {
|
|
setErrors((prev) => ({ ...prev, name: formatUnknownError(error) }));
|
|
return false;
|
|
}
|
|
};
|
|
|
|
const clearErrors = () => {
|
|
setErrors({});
|
|
};
|
|
|
|
return {
|
|
name,
|
|
setName,
|
|
type,
|
|
setType,
|
|
getEnvPayload,
|
|
validateEnvironmentName,
|
|
clearErrors,
|
|
errors,
|
|
};
|
|
};
|
|
|
|
export default useEnvironmentForm;
|