From 82621012def2abbe8a82dc53ca276c7db39bda61 Mon Sep 17 00:00:00 2001 From: Shekar Siri Date: Tue, 4 Feb 2025 11:32:53 +0100 Subject: [PATCH] fix(ui): issue form\ --- .../components/Session_/Issues/IssueForm.js | 178 ------------------ .../components/Session_/Issues/IssueForm.tsx | 177 +++++++++++++++++ .../{IssuesModal.js => IssuesModal.tsx} | 17 +- .../Controls/components/KeyboardHelp.tsx | 43 +++-- .../Session_/{Subheader.js => Subheader.tsx} | 50 ++--- frontend/app/mstore/issueReportingStore.ts | 96 +++++----- frontend/app/types/session/assignment.ts | 78 ++++---- 7 files changed, 328 insertions(+), 311 deletions(-) delete mode 100644 frontend/app/components/Session_/Issues/IssueForm.js create mode 100644 frontend/app/components/Session_/Issues/IssueForm.tsx rename frontend/app/components/Session_/Issues/{IssuesModal.js => IssuesModal.tsx} (53%) rename frontend/app/components/Session_/{Subheader.js => Subheader.tsx} (88%) diff --git a/frontend/app/components/Session_/Issues/IssueForm.js b/frontend/app/components/Session_/Issues/IssueForm.js deleted file mode 100644 index f83e6b79a..000000000 --- a/frontend/app/components/Session_/Issues/IssueForm.js +++ /dev/null @@ -1,178 +0,0 @@ -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 ( - -
- - - - ) : ( - '' - ) - } - /> - - - - - - - - - -