Skip to content

Commit

Permalink
fix(vcd): disable confirm button on update requests
Browse files Browse the repository at this point in the history
ref: MANAGER-16472
desc: prevent multiple requests on update name or description

Signed-off-by: Paul Dickerson <[email protected]>
  • Loading branch information
Paul Dickerson committed Dec 17, 2024
1 parent f31fcf4 commit 4e79080
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ interface EditModalProps {
onCloseModal: () => void;
onEdit: (detail: string) => Promise<AxiosResponse<unknown>>;
error: ApiError | null;
isLoading: boolean;
}

export const EditDetailModal = ({
Expand All @@ -41,12 +42,14 @@ export const EditDetailModal = ({
onCloseModal,
onEdit,
error,
isLoading,
}: EditModalProps) => {
const { t } = useTranslation('dashboard');
const [newDetail, setNewDetail] = useState<string>(detailValue || '');
const [isErrorVisible, setIsErrorVisible] = useState(false);
const isValidDetail = validateDetail(newDetail);
const isButtonEnabled = isValidDetail && newDetail !== detailValue;
const isButtonEnabled =
isValidDetail && newDetail !== detailValue && !isLoading;

const handleSubmit = async () => {
if (isValidDetail) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,12 @@ export const UpdateDetailModalHandler = ({
const { addSuccess } = useMessageContext();
const { id } = useParams();
const { data: vcdOrganization } = useVcdOrganization({ id });
const { updateDetails, error, isError } = useUpdateVcdOrganizationDetails({
const {
updateDetails,
error,
isError,
isPending,
} = useUpdateVcdOrganizationDetails({
id,
onSuccess: () => {
addSuccess({
Expand Down Expand Up @@ -89,6 +94,7 @@ export const UpdateDetailModalHandler = ({
}
onCloseModal={closeModal}
error={isError ? error : null}
isLoading={isPending}
/>
);
};
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export default function EditVdcDescription() {
const { addSuccess } = useMessageContext();
const { id, vdcId } = useParams();
const { data: vcdDatacentre } = useVcdDatacentre(id, vdcId);
const { updateDetails, error, isError } = useUpdateVdcDetails({
const { updateDetails, error, isError, isPending } = useUpdateVdcDetails({
id,
vdcId,
onSuccess: () => {
Expand Down Expand Up @@ -52,6 +52,7 @@ export default function EditVdcDescription() {
})
}
error={isError ? error : null}
isLoading={isPending}
/>
);
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export const useUpdateVdcDetails = ({
}) => {
const queryClient = useQueryClient();

const { mutateAsync: updateDetails, error, isError } = useMutation({
const { mutateAsync: updateDetails, ...mutation } = useMutation({
mutationKey: updateVdcDetailsMutationKey(vdcId),
mutationFn: ({ details }: UpdateVdcDetailsParams) =>
updateVdcDetails({ id, vdcId, details }),
Expand All @@ -32,5 +32,5 @@ export const useUpdateVdcDetails = ({
onError: (result: ApiError) => onError?.(result),
});

return { updateDetails, error, isError };
return { updateDetails, ...mutation };
};
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export const useUpdateVcdOrganizationDetails = ({
}) => {
const queryClient = useQueryClient();

const { mutateAsync: updateDetails, error, isError } = useMutation({
const { mutateAsync: updateDetails, ...mutation } = useMutation({
mutationKey: updateVcdOrganizationDetailsMutationKey(id),
mutationFn: ({ details }: UpdateVcdOrganizationDetailsParams) =>
updateVcdOrganizationDetails({ id, details }),
Expand All @@ -40,5 +40,5 @@ export const useUpdateVcdOrganizationDetails = ({
onError: (result: ApiError) => onError?.(result),
});

return { updateDetails, error, isError };
return { updateDetails, ...mutation };
};

0 comments on commit 4e79080

Please sign in to comment.