Skip to content

Commit

Permalink
[ASAP-867] - fix quick check discussion details in edit form (#4524)
Browse files Browse the repository at this point in the history
* fetch quick check discussion details

* undo type change
  • Loading branch information
AkosuaA authored Feb 13, 2025
1 parent 110e9ae commit ece5cd0
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 28 deletions.
3 changes: 3 additions & 0 deletions apps/crn-frontend/src/network/teams/TeamManuscript.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import {
} from '../../shared-state';
import {
refreshTeamState,
useDiscussionById,
useManuscriptById,
usePostManuscript,
usePutManuscript,
Expand Down Expand Up @@ -50,6 +51,7 @@ const TeamManuscript: React.FC<TeamManuscriptProps> = ({
const getTeamSuggestions = useTeamSuggestions();
const getLabSuggestions = useLabSuggestions();
const getAuthorSuggestions = useAuthorSuggestions();
const getDiscussion = useDiscussionById;

const pushFromHere = usePushFromHere();

Expand Down Expand Up @@ -121,6 +123,7 @@ const TeamManuscript: React.FC<TeamManuscriptProps> = ({
})),
)
}
getDiscussion={getDiscussion}
title={manuscript?.title}
firstAuthors={convertAuthorsToSelectOptions(manuscriptFirstAuthors)}
correspondingAuthor={convertAuthorsToSelectOptions(
Expand Down
72 changes: 45 additions & 27 deletions packages/react-components/src/templates/ManuscriptForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import {
ApcCoverageOption,
AuthorEmailField,
AuthorSelectOption,
DiscussionDataObject,
ManuscriptFileResponse,
ManuscriptFileType,
ManuscriptFormData,
Expand Down Expand Up @@ -289,6 +290,7 @@ type ManuscriptFormProps = Omit<
getAuthorSuggestions: NonNullable<
ComponentProps<typeof AuthorSelect>['loadOptions']
>;
getDiscussion?: (id: string) => DiscussionDataObject | undefined;
firstAuthors?: AuthorSelectOption[];
correspondingAuthor?: AuthorSelectOption[];
additionalAuthors?: AuthorSelectOption[];
Expand Down Expand Up @@ -328,22 +330,31 @@ const ManuscriptForm: React.FC<ManuscriptFormProps> = ({
getLabSuggestions,
selectedLabs,
getAuthorSuggestions,
getDiscussion,
description,
firstAuthors,
correspondingAuthor,
additionalAuthors,
resubmitManuscript = false,
}) => {
const getDefaultQuickCheckValue = (quickCheckDetails: string | undefined) => {
const getDefaultQuickCheckValue = (quickCheckId: string | undefined) => {
const isEditing = !!title;

if (isEditing) {
return quickCheckDetails ? 'No' : 'Yes';
return quickCheckId ? 'No' : 'Yes';
}

return undefined;
};

const getDefaultQuickCheckDetails = (quickCheckId: string | undefined) => {
if (quickCheckId && getDiscussion) {
const discussion = getDiscussion(quickCheckId);
return discussion?.message.text;
}
return undefined;
};

const isEditMode = !!manuscriptId && !resubmitManuscript;
const methods = useForm<ManuscriptFormData>({
mode: 'onBlur',
Expand All @@ -364,44 +375,51 @@ const ManuscriptForm: React.FC<ManuscriptFormProps> = ({
additionalFiles: additionalFiles || undefined,

acknowledgedGrantNumber: getDefaultQuickCheckValue(
acknowledgedGrantNumberDetails?.message.text,
acknowledgedGrantNumberDetails?.id,
),
asapAffiliationIncluded: getDefaultQuickCheckValue(
asapAffiliationIncludedDetails?.message.text,
asapAffiliationIncludedDetails?.id,
),
manuscriptLicense: getDefaultQuickCheckValue(
manuscriptLicenseDetails?.message.text,
manuscriptLicenseDetails?.id,
),
datasetsDeposited: getDefaultQuickCheckValue(
datasetsDepositedDetails?.message.text,
),
codeDeposited: getDefaultQuickCheckValue(
codeDepositedDetails?.message.text,
datasetsDepositedDetails?.id,
),
codeDeposited: getDefaultQuickCheckValue(codeDepositedDetails?.id),
protocolsDeposited: getDefaultQuickCheckValue(
protocolsDepositedDetails?.message.text,
protocolsDepositedDetails?.id,
),
labMaterialsRegistered: getDefaultQuickCheckValue(
labMaterialsRegisteredDetails?.message.text,
labMaterialsRegisteredDetails?.id,
),
availabilityStatement: getDefaultQuickCheckValue(
availabilityStatementDetails?.message.text,
availabilityStatementDetails?.id,
),
acknowledgedGrantNumberDetails: getDefaultQuickCheckDetails(
acknowledgedGrantNumberDetails?.id,
),
asapAffiliationIncludedDetails: getDefaultQuickCheckDetails(
asapAffiliationIncludedDetails?.id,
),
manuscriptLicenseDetails: getDefaultQuickCheckDetails(
manuscriptLicenseDetails?.id,
),
datasetsDepositedDetails: getDefaultQuickCheckDetails(
datasetsDepositedDetails?.id,
),
codeDepositedDetails: getDefaultQuickCheckDetails(
codeDepositedDetails?.id,
),
protocolsDepositedDetails: getDefaultQuickCheckDetails(
protocolsDepositedDetails?.id,
),
labMaterialsRegisteredDetails: getDefaultQuickCheckDetails(
labMaterialsRegisteredDetails?.id,
),
availabilityStatementDetails: getDefaultQuickCheckDetails(
availabilityStatementDetails?.id,
),
acknowledgedGrantNumberDetails:
acknowledgedGrantNumberDetails?.message.text || '',
asapAffiliationIncludedDetails:
asapAffiliationIncludedDetails?.message.text || '',
manuscriptLicenseDetails:
manuscriptLicenseDetails?.message.text || '',
datasetsDepositedDetails:
datasetsDepositedDetails?.message.text || '',
codeDepositedDetails: codeDepositedDetails?.message.text || '',
protocolsDepositedDetails:
protocolsDepositedDetails?.message.text || '',
labMaterialsRegisteredDetails:
labMaterialsRegisteredDetails?.message.text || '',
availabilityStatementDetails:
availabilityStatementDetails?.message.text || '',
teams: selectedTeams || [],
labs: selectedLabs || [],
description: description || '',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { ComponentProps } from 'react';
import { MemoryRouter, Route, Router, StaticRouter } from 'react-router-dom';
import { createMemoryHistory, History } from 'history';
import userEvent, { specialChars } from '@testing-library/user-event';
import { createMessage } from '@asap-hub/fixtures';
import {
AuthorResponse,
AuthorSelectOption,
Expand Down Expand Up @@ -202,10 +203,15 @@ test.each`
fieldDetails: QuickCheckDetails;
}) => {
const onCreate = jest.fn();
const getDiscussion = jest.fn(() => ({
id: 'discussion-1',
message: createMessage('Explanation'),
}));
const props = {
...defaultProps,
[field]: 'No',
[fieldDetails]: { message: { text: 'Explanation' } },
[fieldDetails]: { id: 'discussion-1' },
getDiscussion,
};
render(
<StaticRouter>
Expand Down

0 comments on commit ece5cd0

Please sign in to comment.