Skip to content

Commit

Permalink
fix: categories modal hide software/project switches for children
Browse files Browse the repository at this point in the history
  • Loading branch information
dmijatovic committed Oct 17, 2024
1 parent 21e1b9d commit e32a7ec
Showing 1 changed file with 19 additions and 13 deletions.
32 changes: 19 additions & 13 deletions frontend/components/category/CategoryEditForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,28 +36,36 @@ export default function CategoryEditForm({
mode: 'onChange'
})

const [parent] = watch(['parent'])
// use id of current item as parentId of new (child) item
const parentId = createNew ? data?.id : data?.parent

// console.group('CategoryEditForm')
// console.log('createNew...',createNew)
// console.log('data...',data)
// console.log('disableSave...',disableSave)
// console.log('community...',community)
// console.log('organisation...',organisation)
// console.log('parent...',parent)
// console.log('parentId...',parentId)
// console.groupEnd()


function onSubmit(formData: CategoryEntry){
setDisableSave(true)
// debugger
if (createNew) {
createNewCategory(formData)
createNewCategory(prepareDataForSave(formData))
} else {
updateCategory(formData)
updateCategory(prepareDataForSave(formData))
}
}

function prepareDataForSave(formData: CategoryEntry){
// fix provenance_iri empty value
if (formData.provenance_iri===''){
formData.provenance_iri = null
}
return formData
}

async function createNewCategory(formData: CategoryEntry) {
const resp = await fetch('/api/v1/category', {
method: 'POST',
Expand Down Expand Up @@ -127,11 +135,11 @@ export default function CategoryEditForm({
{/* Different hidden values when creating new item.*/}
{createNew ?
// use id of current item as parent for new (child) item
<input type="hidden" {...register('parent', {value: data === null ? null : data.id})} />
<input type="hidden" {...register('parent', {value: parentId ?? null})} />
:
<>
<input type="hidden" {...register('id', {value: data === null ? undefined : data.id})} />
<input type="hidden" {...register('parent', {value: data === null ? null : data.parent})} />
<input type="hidden" {...register('id', {value: data?.id})} />
<input type="hidden" {...register('parent', {value: parentId ?? null})} />
</>
}
<input type="hidden" {...register('community', {value: community})} />
Expand Down Expand Up @@ -174,8 +182,8 @@ export default function CategoryEditForm({
label: 'Provenance identifier',
defaultValue: createNew ? undefined : (data?.provenance_iri ?? undefined),
helperTextCnt: `${watch('provenance_iri')?.length ?? 0}/250`,
helperTextMessage: `${formState.errors?.name?.message ?? 'Optional Internationalized Resource Identifier for this category'}`,
error: formState.errors?.name?.message !== undefined
helperTextMessage: `${formState.errors?.provenance_iri?.message ?? 'Optional Internationalized Resource Identifier for this category'}`,
error: formState.errors?.provenance_iri?.message !== undefined
}}
/>

Expand All @@ -184,21 +192,19 @@ export default function CategoryEditForm({
We show software/project switch only at top level (root nodes)
*/}
{
organisation && !parent ?
organisation && !parentId ?
<div className="flex gap-8 pt-8">
<ControlledSwitch
label="For software"
name="allow_software"
defaultValue = {data?.allow_software}
control={control}
disabled={parent ? true : false}
/>
<ControlledSwitch
label="For projects"
name="allow_projects"
defaultValue = {data?.allow_projects ?? true}
control={control}
disabled={parent ? true : false}
/>
</div>
:
Expand Down

0 comments on commit e32a7ec

Please sign in to comment.