@@ -9,6 +9,7 @@ import { useFormContext } from 'react-hook-form';
9
9
import { useFieldArray } from 'react-hook-form' ;
10
10
import { PlusIcon } from '@heroicons/react/20/solid' ;
11
11
import { TrashIcon } from '@heroicons/react/24/outline' ;
12
+ import { JobType } from '@prisma/client' ;
12
13
import { Button , Dialog } from '@tih/ui' ;
13
14
14
15
import CompaniesTypeahead from '~/components/shared/CompaniesTypeahead' ;
@@ -31,7 +32,6 @@ import FormTextArea from '../../forms/FormTextArea';
31
32
import FormTextInput from '../../forms/FormTextInput' ;
32
33
import type { OfferFormData } from '../../types' ;
33
34
import { JobTypeLabel } from '../../types' ;
34
- import { JobType } from '../../types' ;
35
35
import { CURRENCY_OPTIONS } from '../../../../utils/offers/currency/CurrencyEnum' ;
36
36
37
37
type FullTimeOfferDetailsFormProps = Readonly < {
@@ -448,7 +448,7 @@ function OfferDetailsFormArray({
448
448
{ fields . map ( ( item , index ) => {
449
449
return (
450
450
< div key = { item . id } >
451
- { jobType === JobType . FullTime ? (
451
+ { jobType === JobType . FULLTIME ? (
452
452
< FullTimeOfferDetailsForm index = { index } remove = { remove } />
453
453
) : (
454
454
< InternshipOfferDetailsForm index = { index } remove = { remove } />
@@ -464,7 +464,7 @@ function OfferDetailsFormArray({
464
464
variant = "tertiary"
465
465
onClick = { ( ) =>
466
466
append (
467
- jobType === JobType . FullTime
467
+ jobType === JobType . FULLTIME
468
468
? defaultFullTimeOfferValues
469
469
: defaultInternshipOfferValues ,
470
470
)
@@ -474,26 +474,32 @@ function OfferDetailsFormArray({
474
474
) ;
475
475
}
476
476
477
- export default function OfferDetailsForm ( ) {
478
- const [ jobType , setJobType ] = useState ( JobType . FullTime ) ;
477
+ type OfferDetailsFormProps = Readonly < {
478
+ defaultJobType ?: JobType ;
479
+ } > ;
480
+
481
+ export default function OfferDetailsForm ( {
482
+ defaultJobType = JobType . FULLTIME ,
483
+ } : OfferDetailsFormProps ) {
484
+ const [ jobType , setJobType ] = useState ( defaultJobType ) ;
479
485
const [ isDialogOpen , setDialogOpen ] = useState ( false ) ;
480
486
const { control } = useFormContext ( ) ;
481
487
const fieldArrayValues = useFieldArray ( { control, name : 'offers' } ) ;
482
488
const { append, remove } = fieldArrayValues ;
483
489
484
490
const toggleJobType = ( ) => {
485
491
remove ( ) ;
486
- if ( jobType === JobType . FullTime ) {
487
- setJobType ( JobType . Intern ) ;
492
+ if ( jobType === JobType . FULLTIME ) {
493
+ setJobType ( JobType . INTERN ) ;
488
494
append ( defaultInternshipOfferValues ) ;
489
495
} else {
490
- setJobType ( JobType . FullTime ) ;
496
+ setJobType ( JobType . FULLTIME ) ;
491
497
append ( defaultFullTimeOfferValues ) ;
492
498
}
493
499
} ;
494
500
495
501
const switchJobTypeLabel = ( ) =>
496
- jobType === JobType . FullTime ? JobTypeLabel . INTERN : JobTypeLabel . FULLTIME ;
502
+ jobType === JobType . FULLTIME ? JobTypeLabel . INTERN : JobTypeLabel . FULLTIME ;
497
503
498
504
return (
499
505
< div className = "mb-5" >
@@ -506,9 +512,9 @@ export default function OfferDetailsForm() {
506
512
display = "block"
507
513
label = { JobTypeLabel . FULLTIME }
508
514
size = "md"
509
- variant = { jobType === JobType . FullTime ? 'secondary' : 'tertiary' }
515
+ variant = { jobType === JobType . FULLTIME ? 'secondary' : 'tertiary' }
510
516
onClick = { ( ) => {
511
- if ( jobType === JobType . FullTime ) {
517
+ if ( jobType === JobType . FULLTIME ) {
512
518
return ;
513
519
}
514
520
setDialogOpen ( true ) ;
@@ -520,9 +526,9 @@ export default function OfferDetailsForm() {
520
526
display = "block"
521
527
label = { JobTypeLabel . INTERN }
522
528
size = "md"
523
- variant = { jobType === JobType . Intern ? 'secondary' : 'tertiary' }
529
+ variant = { jobType === JobType . INTERN ? 'secondary' : 'tertiary' }
524
530
onClick = { ( ) => {
525
- if ( jobType === JobType . Intern ) {
531
+ if ( jobType === JobType . INTERN ) {
526
532
return ;
527
533
}
528
534
setDialogOpen ( true ) ;
0 commit comments