mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2026-04-02 10:31:25 +08:00
[offers][fix] Fix year options (#548)
This commit is contained in:
@@ -1,8 +1,12 @@
|
||||
const NUM_YEARS = 5;
|
||||
export const FutureYearsOptions = Array.from({ length: NUM_YEARS }, (_, i) => {
|
||||
const year = new Date().getFullYear() + i;
|
||||
return {
|
||||
label: String(year),
|
||||
value: year,
|
||||
};
|
||||
});
|
||||
const OFFSET = 2;
|
||||
export const YearsOptions = (yearSelected?: number) =>
|
||||
Array.from({ length: NUM_YEARS }, (_, i) => {
|
||||
const year = yearSelected
|
||||
? yearSelected - OFFSET + i
|
||||
: new Date().getFullYear() - OFFSET + i;
|
||||
return {
|
||||
label: String(year),
|
||||
value: year,
|
||||
};
|
||||
});
|
||||
|
||||
@@ -73,7 +73,7 @@ export const defaultInternshipOfferValues = {
|
||||
monthlySalary: {
|
||||
currency: DEFAULT_CURRENCY,
|
||||
},
|
||||
startYear: null,
|
||||
startYear: getCurrentYear(),
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import FormTextInput from '../../forms/FormTextInput';
|
||||
import { InternshipCycleOptions } from '../../InternshipCycles';
|
||||
import JobTypeTabs from '../../JobTypeTabs';
|
||||
import type { OfferFormData } from '../../types';
|
||||
import { FutureYearsOptions } from '../../Years';
|
||||
import { YearsOptions } from '../../Years';
|
||||
import { CURRENCY_OPTIONS } from '../../../../utils/offers/currency/CurrencyEnum';
|
||||
|
||||
type FullTimeOfferDetailsFormProps = Readonly<{
|
||||
@@ -287,6 +287,9 @@ function InternshipOfferDetailsForm({
|
||||
const { register, formState, control } = useFormContext<{
|
||||
offers: Array<OfferFormData>;
|
||||
}>();
|
||||
const watchStartYear = useWatch({
|
||||
name: `offers.${index}.offersIntern.startYear`,
|
||||
});
|
||||
const offerFields = formState.errors.offers?.[index];
|
||||
|
||||
return (
|
||||
@@ -351,7 +354,7 @@ function InternshipOfferDetailsForm({
|
||||
display="block"
|
||||
errorMessage={offerFields?.offersIntern?.startYear?.message}
|
||||
label="Internship Year"
|
||||
options={FutureYearsOptions}
|
||||
options={YearsOptions(watchStartYear)}
|
||||
required={true}
|
||||
{...register(`offers.${index}.offersIntern.startYear`, {
|
||||
required: FieldError.REQUIRED,
|
||||
|
||||
Reference in New Issue
Block a user