Skip to content

Commit 7d03832

Browse files
committed
fix: lint and save ai workflow id
1 parent d638eb6 commit 7d03832

File tree

3 files changed

+44
-7
lines changed

3 files changed

+44
-7
lines changed

src/apps/admin/src/lib/components/DefaultReviewersAddForm/DefaultReviewersAddForm.tsx

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,10 +139,19 @@ export const DefaultReviewersAddForm: FC<Props> = (props: Props) => {
139139

140140
const onSubmit = useCallback(
141141
(data: FormAddDefaultReviewer) => {
142+
const isMemberReview = data.isMemberReview
142143
const requestBody = _.omitBy(
143144
data,
144145
value => value === undefined || value === null || value === '',
145146
)
147+
148+
if (!isMemberReview) {
149+
requestBody.memberReviewerCount = undefined
150+
} else {
151+
// eslint-disable-next-line unicorn/no-null
152+
requestBody.aiWorkflowId = null
153+
}
154+
146155
if (isEdit) {
147156
doUpdateDefaultReviewer(requestBody, () => {
148157
navigate('./../..')
@@ -407,7 +416,7 @@ export const DefaultReviewersAddForm: FC<Props> = (props: Props) => {
407416
classNameWrapper={styles.inputField}
408417
/>
409418
<InputText
410-
type='number'
419+
type='text'
411420
name='baseCoefficient'
412421
label='Base Coefficient'
413422
placeholder='Enter value'
@@ -416,14 +425,23 @@ export const DefaultReviewersAddForm: FC<Props> = (props: Props) => {
416425
onChange={_.noop}
417426
error={_.get(errors, 'baseCoefficient.message')}
418427
inputControl={register('baseCoefficient', {
419-
valueAsNumber: true,
428+
setValueAs: v => {
429+
if (typeof v === 'string') {
430+
const normalized = v.replace(',', '.')
431+
const parsed = parseFloat(normalized)
432+
return Number.isNaN(parsed) ? undefined : parsed
433+
}
434+
435+
return v
436+
},
437+
valueAsNumber: false,
420438
})}
421439
dirty
422440
disabled={isLoading}
423441
classNameWrapper={styles.inputField}
424442
/>
425443
<InputText
426-
type='number'
444+
type='text'
427445
name='incrementalCoefficient'
428446
label='Incremental Coefficient'
429447
placeholder='Enter value'
@@ -432,7 +450,16 @@ export const DefaultReviewersAddForm: FC<Props> = (props: Props) => {
432450
onChange={_.noop}
433451
error={_.get(errors, 'incrementalCoefficient.message')}
434452
inputControl={register('incrementalCoefficient', {
435-
valueAsNumber: true,
453+
setValueAs: v => {
454+
if (typeof v === 'string') {
455+
const normalized = v.replace(',', '.')
456+
const parsed = parseFloat(normalized)
457+
return Number.isNaN(parsed) ? undefined : parsed
458+
}
459+
460+
return v
461+
},
462+
valueAsNumber: false,
436463
})}
437464
dirty
438465
disabled={isLoading}
@@ -497,7 +524,7 @@ export const DefaultReviewersAddForm: FC<Props> = (props: Props) => {
497524
label='AI Workflow'
498525
placeholder='Select AI Workflow'
499526
options={aiWorkflows}
500-
value={controlProps.field.value}
527+
value={controlProps.field.value || ''}
501528
onChange={controlProps.field.onChange}
502529
onBlur={controlProps.field.onBlur}
503530
classNameWrapper={styles.inputField}

src/apps/admin/src/lib/models/DefaultChallengeReviewer.model.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,5 +41,5 @@ export interface FormAddDefaultReviewer {
4141
incrementalCoefficient?: number;
4242
opportunityType?: string;
4343
shouldOpenOpportunity: boolean;
44-
aiWorkflowId?: string;
44+
aiWorkflowId?: string | null;
4545
}

src/apps/admin/src/lib/utils/validation-schemas.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,17 @@ export const formAddDefaultReviewerSchema: Yup.ObjectSchema<FormAddDefaultReview
2424
.optional(),
2525
baseCoefficient: Yup.number()
2626
.optional()
27-
.min(0, 'Must be non-negative'),
27+
.min(0, 'Must be non-negative')
28+
.transform((value, originalValue) => {
29+
if (typeof originalValue === 'string') {
30+
// Replace comma with dot for decimal separator
31+
const normalized = originalValue.replace(',', '.')
32+
return parseFloat(normalized)
33+
}
34+
35+
return value
36+
})
37+
.typeError('Please enter a valid number'),
2838
fixedAmount: Yup.number()
2939
.optional()
3040
.min(0, 'Must be non-negative'),

0 commit comments

Comments
 (0)