Skip to content

Commit

Permalink
ISSUE #5173 - use drawing interface
Browse files Browse the repository at this point in the history
  • Loading branch information
Amantini1997 committed Oct 1, 2024
1 parent 78d1040 commit 1ddece9
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ import { SubmitHandler } from 'react-hook-form';
import { FormModal } from '@controls/formModal/formModal.component';
import { ProjectsHooksSelectors, TeamspacesHooksSelectors } from '@/v5/services/selectorsHooks';
import { DrawingsActionsDispatchers } from '@/v5/services/actionsDispatchers';
import { IFormInput, useDrawingForm } from './drawingsDialogs.hooks';
import { useDrawingForm } from './drawingsDialogs.hooks';
import { DrawingForm } from './drawingForm.component';
import { DEFAULT_SETTINGS_CALIBRATION } from '../../calibration/calibration.helpers';
import { DrawingSettings } from '@/v5/store/drawings/drawings.types';

export const CreateDrawingDialog = ({ open, onClickClose }) => {
const teamspace = TeamspacesHooksSelectors.selectCurrentTeamspace();
Expand All @@ -31,7 +32,7 @@ export const CreateDrawingDialog = ({ open, onClickClose }) => {
const { onSubmitError, formData } = useDrawingForm({ calibration: DEFAULT_SETTINGS_CALIBRATION } as any);
const { handleSubmit, formState } = formData;

const onSubmit: SubmitHandler<IFormInput> = async (body) => {
const onSubmit: SubmitHandler<DrawingSettings> = async (body) => {
try {
await new Promise<void>((accept, reject) => DrawingsActionsDispatchers.createDrawing(teamspace, project, body as any, accept, reject));
onClickClose();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,13 @@

import { DrawingsActionsDispatchers } from '@/v5/services/actionsDispatchers';
import { DrawingsHooksSelectors, ProjectsHooksSelectors, TeamspacesHooksSelectors } from '@/v5/services/selectorsHooks';
import { IDrawing } from '@/v5/store/drawings/drawings.types';
import { DrawingSettings, IDrawing } from '@/v5/store/drawings/drawings.types';
import { DrawingFormSchema } from '@/v5/validation/drawingSchemes/drawingSchemes';
import { nameAlreadyExists, numberAlreadyExists } from '@/v5/validation/errors.helpers';
import { yupResolver } from '@hookform/resolvers/yup';
import { useEffect, useState } from 'react';
import { useForm } from 'react-hook-form';

export interface IFormInput {
name: string;
number: string;
type: string;
desc: string;
calibration: {
verticalRange: [number, number];
units: string;
};
}

export const useDrawingForm = (defaultValues?: IDrawing) => {
const teamspace = TeamspacesHooksSelectors.selectCurrentTeamspace();
const project = ProjectsHooksSelectors.selectCurrentProject();
Expand All @@ -54,7 +43,7 @@ export const useDrawingForm = (defaultValues?: IDrawing) => {
const [alreadyExistingNames, setAlreadyExistingNames] = useState(drawingsNames);
const [alreadyExistingNumbers, setAlreadyExistingNumbers] = useState(drawingNumbers);

const formData = useForm<IFormInput>({
const formData = useForm<DrawingSettings>({
mode: 'onChange',
resolver: yupResolver(DrawingFormSchema),
context: { alreadyExistingNames, alreadyExistingNumbers },
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@ import { SubmitHandler } from 'react-hook-form';
import { FormModal } from '@controls/formModal/formModal.component';
import { DrawingsHooksSelectors, ProjectsHooksSelectors, TeamspacesHooksSelectors } from '@/v5/services/selectorsHooks';
import { DrawingsActionsDispatchers } from '@/v5/services/actionsDispatchers';
import { IFormInput, useDrawingForm } from './drawingsDialogs.hooks';
import { useDrawingForm } from './drawingsDialogs.hooks';
import { dirtyValuesChanged } from '@/v5/helpers/form.helper';
import { pick } from 'lodash';
import { DrawingForm } from './drawingForm.component';
import { useEffect } from 'react';
import { Loader } from '@/v4/routes/components/loader/loader.component';
import { DrawingSettings } from '@/v5/store/drawings/drawings.types';

interface Props {
open: boolean;
Expand All @@ -41,7 +42,7 @@ export const EditDrawingDialog = ({ open, onClickClose, drawingId }:Props) => {
const { onSubmitError, formData } = useDrawingForm(drawing);
const { handleSubmit, formState } = formData;

const onSubmit: SubmitHandler<IFormInput> = async (body) => {
const onSubmit: SubmitHandler<DrawingSettings> = async (body) => {
try {
await new Promise<void>((accept, reject) => {
const updatedDrawingData = pick(body, Object.keys(formState.dirtyFields));
Expand Down

0 comments on commit 1ddece9

Please sign in to comment.