You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

109 rivejä
4.0 KiB

  1. // material-ui
  2. import {
  3. Typography,
  4. Grid,
  5. } from '@mui/material';
  6. import FileList from "components/FileList"
  7. import MainCard from "components/MainCard";
  8. import * as React from "react";
  9. import { useParams } from "react-router-dom";
  10. import { useFormik } from 'formik';
  11. import * as DateUtils from "utils/DateUtils"
  12. // ==============================|| DASHBOARD - DEFAULT ||============================== //
  13. const FormPanel = ({ formData }) => {
  14. const [data, setData] = React.useState({});
  15. const params = useParams();
  16. React.useEffect(() => {
  17. if (formData) {
  18. setData(formData);
  19. }
  20. }, [formData]);
  21. const formik = useFormik({
  22. enableReinitialize: true,
  23. initialValues: data,
  24. });
  25. const isOverTime = () => {
  26. let returnBeforeDate = DateUtils.convertToDate(formik.values?.returnBeforeDate);
  27. if (!returnBeforeDate) return true;
  28. returnBeforeDate = returnBeforeDate.setHours(14, 0, 0, 0);
  29. let current = new Date();
  30. return current.getTime() > returnBeforeDate;
  31. }
  32. return (
  33. <MainCard xs={12} md={12} lg={12}
  34. border={false}
  35. content={false}>
  36. <Typography variant="h5" sx={{ textAlign: "left", mb: 2, borderBottom: "1px solid black" }}>
  37. Public Notice: Proofreading Reply
  38. </Typography>
  39. <form onSubmit={formik.handleSubmit}>
  40. {
  41. formik.values.replyDate ?
  42. <Grid container direction="column" sx={{ paddingLeft: 4, paddingRight: 4 }} spacing={1}>
  43. <Grid item xs={12} md={12} textAlign="left">
  44. Reply Date: {DateUtils.datetimeStr(formik.values.replyDate)}
  45. </Grid>
  46. <Grid item xs={12} md={12} textAlign="left">
  47. Reply: {formik.values.action ? (<span style={{color:'green'}}>Ready for printing (correct manuscript).</span>) : (<span style={{color:'red'}}>Not ready for printing (requires modification).</span>)}
  48. </Grid>
  49. {
  50. formik.values.action ?
  51. null
  52. :
  53. <Grid item xs={12} md={12} textAlign="left">
  54. <FileList
  55. refId={params.id}
  56. refType={"proofReply"}
  57. dateHideable={true}
  58. disablePagination
  59. disableSelectionOnClick
  60. disableColumnMenu
  61. disableColumnSelector
  62. hideFooter
  63. />
  64. </Grid>
  65. }
  66. </Grid>
  67. :
  68. (
  69. isOverTime() ?
  70. <Grid container direction="column" sx={{ paddingLeft: 4, paddingRight: 4 }} spacing={1}>
  71. <Grid item xs={12} md={12} textAlign="left">
  72. The response timed out, please apply again.
  73. </Grid>
  74. </Grid>
  75. :
  76. <Grid container direction="column" sx={{ paddingLeft: 4, paddingRight: 4 }} spacing={1}>
  77. <Grid item xs={12} md={12} textAlign="left">
  78. Wait for reply.
  79. </Grid>
  80. </Grid>
  81. )
  82. }
  83. </form>
  84. </MainCard>
  85. );
  86. };
  87. export default FormPanel;