• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

IQSS / dataverse-frontend / 7914093596

15 Feb 2024 09:54AM CUT coverage: 97.453% (-0.007%) from 97.46%
7914093596

Pull #284

github

MellyGray
Merge branch 'develop' of https://github.com/IQSS/dataverse-frontend into feature/280-use-query-param-in-home-page-pagination
Pull Request #284: 280 - Use page search param in home page pagination

533 of 554 branches covered (96.21%)

Branch coverage included in aggregate %.

1571 of 1605 relevant lines covered (97.88%)

3812.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.25
/src/sections/create-dataset/useCreateDatasetForm.tsx
1
import { useState } from 'react'
2
import { DatasetFormFields } from '../../dataset/domain/models/DatasetFormFields'
3
import { createDataset } from '../../dataset/domain/useCases/createDataset'
4
import { validateDataset } from '../../dataset/domain/useCases/validateDataset'
5
import { DatasetValidationResponse } from '../../dataset/domain/models/DatasetValidationResponse'
6
import { useNavigate } from 'react-router-dom'
7
import { Route } from '../Route.enum'
8
interface FormContextInterface {
9
  fields: DatasetFormFields
10
}
11

12
const defaultFormState: DatasetFormFields = {
3✔
13
  createDatasetTitle: ''
14
}
15

16
export enum SubmissionStatusEnums {
3✔
17
  NotSubmitted = 'NotSubmitted',
3✔
18
  IsSubmitting = 'IsSubmitting',
3✔
19
  SubmitComplete = 'SubmitComplete',
3✔
20
  Errored = 'Errored'
3✔
21
}
22

23
export function useCreateDatasetForm() {
48✔
24
  const [formState, setFormState] = useState<FormContextInterface>({
48✔
25
    fields: defaultFormState
26
  })
27

28
  const [submissionStatus, setSubmissionStatus] = useState<SubmissionStatusEnums>(
48✔
29
    SubmissionStatusEnums.NotSubmitted
30
  )
31
  const [formErrors, setFormErrors] = useState<Record<keyof DatasetFormFields, string | undefined>>(
48✔
32
    { createDatasetTitle: undefined }
33
  )
34

35
  const updateFormData = (updatedFormData: object) => {
48✔
36
    setFormState((prevState) => ({
36✔
37
      ...prevState,
38
      fields: { ...prevState.fields, ...updatedFormData }
39
    }))
40
  }
41

42
  const submitFormData = () => {
48✔
43
    setSubmissionStatus(SubmissionStatusEnums.IsSubmitting)
2✔
44

45
    const validationResult: DatasetValidationResponse = validateDataset(formState.fields)
2✔
46

47
    if (validationResult.isValid) {
2!
48
      createDataset(formState.fields)
2✔
49
        .then(() => setSubmissionStatus(SubmissionStatusEnums.IsSubmitting))
2✔
50
        .catch(() => setSubmissionStatus(SubmissionStatusEnums.Errored))
×
51
        .finally(() => setSubmissionStatus(SubmissionStatusEnums.SubmitComplete))
2✔
52
    } else {
53
      setFormErrors(validationResult.errors)
×
54
      setSubmissionStatus(SubmissionStatusEnums.Errored)
×
55
    }
56
  }
57
  const navigate = useNavigate()
48✔
58
  const cancelFormSubmit = () => {
48✔
59
    const path = Route.HOME
×
60
    navigate(path)
×
61
  }
62

63
  return {
48✔
64
    formState,
65
    formErrors,
66
    submissionStatus,
67
    updateFormData,
68
    submitFormData,
69
    cancelFormSubmit
70
  }
71
}
3✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc