Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 1x 3x 3x 3x 3x 3x 3x 3x 2x 2x 2x 1x 1x 3x | import React, { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { showSnackbar } from '@openmrs/esm-framework';
import { saveLocation } from './stock-locations-table.resource';
import { type locationData } from '../stock-items/types';
import { extractErrorMessagesFromResponse } from '../constants';
import LocationAdministrationForm from './location-admin-form.component';
interface LocationFormProps {
close: () => void;
mutate: () => void;
}
const NewLocationForm: React.FC<LocationFormProps> = ({ close, mutate }) => {
const { t } = useTranslation();
const headerTitle = t('addLocation', 'Create new Location');
const initialData: locationData = {
uuid: '',
name: '',
tags: [],
};
const handleCreateQuestion = useCallback(
(formData: locationData) => {
const { name, tags } = formData;
const locationbject = {
name,
tags,
};
return saveLocation({ locationPayload: locationbject })
.then(() => {
showSnackbar({
title: t('locationCreatedTitle', 'Location created'),
kind: 'success',
isLowContrast: true,
subtitle: t('locationCreatedSuccessfully', 'Location {{locationName}} was created successfully.', {
locationName: name,
}),
});
mutate();
close();
})
.catch((error) => {
const errorMessages = extractErrorMessagesFromResponse(error);
showSnackbar({
title: t('errorCreatingForm', 'Error creating location'),
kind: 'error',
isLowContrast: true,
subtitle: errorMessages.join(', '),
});
});
},
[close, mutate, t],
);
return (
<LocationAdministrationForm
close={close}
handleCreateQuestion={handleCreateQuestion}
headerTitle={headerTitle}
initialData={initialData}
/>
);
};
export default NewLocationForm;
|