import { observer } from 'mobx-react-lite';
import React from 'react';
import { useStore } from 'App/mstore';
import { Button, CircularLoader, Form, Input, Loader } from 'UI';
import Select from 'Shared/Select';
const SelectedValue = ({ icon, text }) => {
return (
{icon}
{text}
);
};
function IssueForm(props) {
const { closeHandler } = props;
const { issueReportingStore } = useStore();
const creating = issueReportingStore.createLoading;
const projects = issueReportingStore.projects;
const projectsLoading = issueReportingStore.projectsLoading;
const users = issueReportingStore.users;
const instance = issueReportingStore.instance;
const metaLoading = issueReportingStore.metaLoading;
const issueTypes = issueReportingStore.issueTypes;
const addActivity = issueReportingStore.saveIssue;
const init = issueReportingStore.init;
const edit = issueReportingStore.editInstance;
const fetchMeta = issueReportingStore.fetchMeta;
React.useEffect(() => {
init({
projectId: projects[0] ? projects[0].id : '',
issueType: issueTypes[0] ? issueTypes[0].id : '',
});
}, []);
React.useEffect(() => {
if (instance?.projectId) {
fetchMeta(instance?.projectId).then(() => {
edit({
issueType: '',
assignee: '',
projectId: instance?.projectId,
});
});
}
}, [instance?.projectId]);
const onSubmit = () => {
const { sessionId } = props;
addActivity(sessionId, instance).then(() => {
const { errors } = props;
if (!errors || errors.length === 0) {
init({ projectId: instance?.projectId });
void issueReportingStore.fetchList(sessionId);
closeHandler();
}
});
};
const write = (e) => {
const {
target: { name, value },
} = e;
edit({ [name]: value });
};
const writeOption = ({ name, value }) => edit({ [name]: value.value });
const projectOptions = projects.map(({ name, id }) => ({
label: name,
value: id,
}));
const userOptions = users.map(({ name, id }) => ({ label: name, value: id }));
const issueTypeOptions = issueTypes.map(({ name, id, iconUrl, color }) => {
return { label: name, value: id, iconUrl, color };
});
const selectedIssueType = issueTypes.filter(
(issue) => issue.id == instance?.issueType
)[0];
return (
) : (
''
)
}
/>
);
}
export default observer(IssueForm);