|
|
@ -1,11 +1,13 @@
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
ArrowTrendingUpIcon,
|
|
|
|
ArrowTrendingUpIcon,
|
|
|
|
BuildingOfficeIcon,
|
|
|
|
BuildingOfficeIcon,
|
|
|
|
|
|
|
|
CalendarIcon,
|
|
|
|
MapPinIcon,
|
|
|
|
MapPinIcon,
|
|
|
|
} from '@heroicons/react/20/solid';
|
|
|
|
} from '@heroicons/react/20/solid';
|
|
|
|
import { JobType } from '@prisma/client';
|
|
|
|
import { JobType } from '@prisma/client';
|
|
|
|
|
|
|
|
|
|
|
|
import { JobTypeLabel } from '~/components/offers/constants';
|
|
|
|
import { JobTypeLabel } from '~/components/offers/constants';
|
|
|
|
|
|
|
|
import { InternshipCycleValuesToLabels } from '~/components/offers/InternshipCycles';
|
|
|
|
import type { OfferDisplayData } from '~/components/offers/types';
|
|
|
|
import type { OfferDisplayData } from '~/components/offers/types';
|
|
|
|
|
|
|
|
|
|
|
|
import { getLocationDisplayText } from '~/utils/offers/string';
|
|
|
|
import { getLocationDisplayText } from '~/utils/offers/string';
|
|
|
@ -21,12 +23,14 @@ export default function OfferCard({
|
|
|
|
bonus,
|
|
|
|
bonus,
|
|
|
|
companyName,
|
|
|
|
companyName,
|
|
|
|
duration,
|
|
|
|
duration,
|
|
|
|
|
|
|
|
internshipCycle,
|
|
|
|
jobTitle,
|
|
|
|
jobTitle,
|
|
|
|
jobLevel,
|
|
|
|
jobLevel,
|
|
|
|
jobType,
|
|
|
|
jobType,
|
|
|
|
location,
|
|
|
|
location,
|
|
|
|
receivedMonth,
|
|
|
|
receivedMonth,
|
|
|
|
totalCompensation,
|
|
|
|
totalCompensation,
|
|
|
|
|
|
|
|
startYear,
|
|
|
|
stocks,
|
|
|
|
stocks,
|
|
|
|
monthlySalary,
|
|
|
|
monthlySalary,
|
|
|
|
negotiationStrategy,
|
|
|
|
negotiationStrategy,
|
|
|
@ -41,9 +45,9 @@ export default function OfferCard({
|
|
|
|
<h3 className="text-lg font-medium leading-6 text-slate-900">
|
|
|
|
<h3 className="text-lg font-medium leading-6 text-slate-900">
|
|
|
|
{jobTitle} {jobType && <>({JobTypeLabel[jobType]})</>}
|
|
|
|
{jobTitle} {jobType && <>({JobTypeLabel[jobType]})</>}
|
|
|
|
</h3>
|
|
|
|
</h3>
|
|
|
|
<div className="mt-1 flex flex-row flex-wrap space-x-4 sm:mt-0">
|
|
|
|
<div className="mt-1 flex flex-row flex-wrap sm:mt-0">
|
|
|
|
{companyName && (
|
|
|
|
{companyName && (
|
|
|
|
<div className="mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<div className="mr-4 mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<BuildingOfficeIcon
|
|
|
|
<BuildingOfficeIcon
|
|
|
|
aria-hidden="true"
|
|
|
|
aria-hidden="true"
|
|
|
|
className="mr-1.5 h-5 w-5 flex-shrink-0 text-slate-400"
|
|
|
|
className="mr-1.5 h-5 w-5 flex-shrink-0 text-slate-400"
|
|
|
@ -52,7 +56,7 @@ export default function OfferCard({
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
)}
|
|
|
|
{location && (
|
|
|
|
{location && (
|
|
|
|
<div className="mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<div className="mr-4 mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<MapPinIcon
|
|
|
|
<MapPinIcon
|
|
|
|
aria-hidden="true"
|
|
|
|
aria-hidden="true"
|
|
|
|
className="mr-1.5 h-5 w-5 flex-shrink-0 text-slate-400"
|
|
|
|
className="mr-1.5 h-5 w-5 flex-shrink-0 text-slate-400"
|
|
|
@ -60,6 +64,17 @@ export default function OfferCard({
|
|
|
|
{getLocationDisplayText(location)}
|
|
|
|
{getLocationDisplayText(location)}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
)}
|
|
|
|
)}
|
|
|
|
|
|
|
|
{(internshipCycle || startYear) && (
|
|
|
|
|
|
|
|
<div className="mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
|
|
|
|
<CalendarIcon
|
|
|
|
|
|
|
|
aria-hidden="true"
|
|
|
|
|
|
|
|
className="mr-1.5 h-5 w-5 flex-shrink-0 text-slate-400"
|
|
|
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
{internshipCycle && startYear
|
|
|
|
|
|
|
|
? `${startYear} ${InternshipCycleValuesToLabels[internshipCycle]}`
|
|
|
|
|
|
|
|
: internshipCycle || startYear}
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
)}
|
|
|
|
{jobLevel && (
|
|
|
|
{jobLevel && (
|
|
|
|
<div className="mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<div className="mt-2 flex items-center text-sm text-slate-500">
|
|
|
|
<ArrowTrendingUpIcon
|
|
|
|
<ArrowTrendingUpIcon
|
|
|
@ -169,4 +184,4 @@ export default function OfferCard({
|
|
|
|
<BottomSection />
|
|
|
|
<BottomSection />
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|