diff --git a/apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx b/apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx
index 3b013c2c..a901aba7 100644
--- a/apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx
+++ b/apps/portal/src/components/offers/dashboard/DashboardOfferCard.tsx
@@ -33,6 +33,7 @@ export default function DashboardProfileCard({
+<<<<<<< HEAD
{getLabelForJobTitleType(title as JobTitleType)}{' '}
{jobType && <>({JobTypeLabel[jobType]})>}
@@ -66,6 +67,17 @@ export default function DashboardProfileCard({
)}
+=======
+
+ {getLabelForJobTitleType(title as JobTitleType)}
+
+
+ {location
+ ? `Company: ${company.name}, ${location.cityName}`
+ : `Company: ${company.name}`}
+
+ {level &&
Level: {level}
}
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
diff --git a/apps/portal/src/components/offers/profile/OfferCard.tsx b/apps/portal/src/components/offers/profile/OfferCard.tsx
index 42212fce..0668716f 100644
--- a/apps/portal/src/components/offers/profile/OfferCard.tsx
+++ b/apps/portal/src/components/offers/profile/OfferCard.tsx
@@ -35,6 +35,7 @@ export default function OfferCard({
}: Props) {
function UpperSection() {
return (
+<<<<<<< HEAD
@@ -70,6 +71,17 @@ export default function OfferCard({
)}
+=======
+
+
+
+
+
+
+
+ {location ? `${companyName}, ${location.cityName}` : companyName}
+
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
{!duration && receivedMonth && (
@@ -99,6 +111,7 @@ export default function OfferCard({
}
return (
+<<<<<<< HEAD
{jobType === JobType.FULLTIME
@@ -142,6 +155,34 @@ export default function OfferCard({
- {bonus}
)}
+=======
+ <>
+
+
+
+ {(totalCompensation || monthlySalary) && (
+
+
+
+
+
+
+ {totalCompensation && `TC: ${totalCompensation}`}
+ {monthlySalary && `Monthly Salary: ${monthlySalary}`}
+
+
+
+ )}
+ {(base || stocks || bonus) && totalCompensation && (
+
+
+ Base / year: {base ?? 'N/A'} ⋅ Stocks / year:{' '}
+ {stocks ?? 'N/A'} ⋅ Bonus / year: {bonus ?? 'N/A'}
+
+
+ )}
+
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
{negotiationStrategy && (
diff --git a/apps/portal/src/components/offers/table/OffersTable.tsx b/apps/portal/src/components/offers/table/OffersTable.tsx
index 209a9ec8..6023ed36 100644
--- a/apps/portal/src/components/offers/table/OffersTable.tsx
+++ b/apps/portal/src/components/offers/table/OffersTable.tsx
@@ -25,14 +25,19 @@ import type { DashboardOffer, GetOffersResponse, Paging } from '~/types/offers';
const NUMBER_OF_OFFERS_IN_PAGE = 10;
export type OffersTableProps = Readonly<{
+ cityFilter: string;
companyFilter: string;
companyName?: string;
countryFilter: string;
jobTitleFilter: string;
}>;
export default function OffersTable({
+<<<<<<< HEAD
countryFilter,
companyName,
+=======
+ cityFilter,
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
companyFilter,
jobTitleFilter,
}: OffersTableProps) {
@@ -106,6 +111,8 @@ export default function OffersTable({
[
'offers.list',
{
+ // Location: 'Singapore, Singapore', // TODO: Geolocation
+ cityId: cityFilter,
companyId: companyFilter,
countryId: countryFilter,
currency,
@@ -165,11 +172,17 @@ export default function OffersTable({
/>
))}
+<<<<<<< HEAD
Display offers in
+=======
+
+
+
Display offers in
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
setCurrency(value)}
selectedCurrency={currency}
diff --git a/apps/portal/src/components/offers/types.ts b/apps/portal/src/components/offers/types.ts
index b38d1540..bb3c6841 100644
--- a/apps/portal/src/components/offers/types.ts
+++ b/apps/portal/src/components/offers/types.ts
@@ -3,6 +3,30 @@ import type { JobType } from '@prisma/client';
import type { MonthYear } from '~/components/shared/MonthYearPicker';
import type { Location } from '~/types/offers';
+<<<<<<< HEAD
+=======
+
+export const HOME_URL = '/offers';
+
+/*
+ * Offer Profile
+ */
+
+export const JobTypeLabel = {
+ FULLTIME: 'Full-time',
+ INTERN: 'Internship',
+};
+
+export enum EducationBackgroundType {
+ Bachelor = 'Bachelor',
+ Diploma = 'Diploma',
+ Masters = 'Masters',
+ PhD = 'PhD',
+ Professional = 'Professional',
+ Secondary = 'Secondary',
+ SelfTaught = 'Self-taught',
+}
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
export type OffersProfilePostData = {
background: BackgroundPostData;
@@ -33,6 +57,10 @@ type ExperiencePostData = {
id?: string;
jobType?: string | null;
level?: string | null;
+<<<<<<< HEAD
+=======
+ location?: Location | null;
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
monthlySalary?: Money | null;
title?: string | null;
totalCompensation?: Money | null;
diff --git a/apps/portal/src/pages/offers/index.tsx b/apps/portal/src/pages/offers/index.tsx
index b1773a28..6864860b 100644
--- a/apps/portal/src/pages/offers/index.tsx
+++ b/apps/portal/src/pages/offers/index.tsx
@@ -12,10 +12,19 @@ import type { JobTitleType } from '~/components/shared/JobTitles';
import { JobTitleLabels } from '~/components/shared/JobTitles';
import JobTitlesTypeahead from '~/components/shared/JobTitlesTypahead';
+<<<<<<< HEAD
import { useSearchParamSingle } from '~/utils/offers/useSearchParam';
export default function OffersHomePage() {
const [countryFilter, setCountryFilter] = useState('');
+=======
+import CitiesTypeahead from '../../components/shared/CitiesTypeahead';
+
+export default function OffersHomePage() {
+ const [jobTitleFilter, setjobTitleFilter] = useState('software-engineer');
+ const [companyFilter, setCompanyFilter] = useState('');
+ const [cityFilter, setCityFilter] = useState('');
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
const { event: gaEvent } = useGoogleAnalytics();
const [selectedCompanyName, setSelectedCompanyName] =
@@ -35,6 +44,7 @@ export default function OffersHomePage() {
. ⭐
+<<<<<<< HEAD
@@ -52,6 +62,23 @@ export default function OffersHomePage() {
});
} else {
setCountryFilter('');
+=======
+
+
+
+
+ {
+ if (option) {
+ setCityFilter(option.value);
+ gaEvent({
+ action: `offers.table_filter_city_${option.value}`,
+ category: 'engagement',
+ label: 'Filter by city',
+ });
+>>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
}
}}
/>
@@ -131,10 +158,16 @@ export default function OffersHomePage() {
>>>>>> ac2d047d ([offers][feat] integrate location for offer table and profile)
/>