From f6758c165c7a3835373175ec260ab8e01af40a68 Mon Sep 17 00:00:00 2001 From: Tiago Yamamoto Date: Wed, 18 Feb 2026 05:47:08 -0600 Subject: [PATCH] fix: resolve merge conflict markers in ApiJob interface and fix requirements type handling Removed leftover <<<<<<< Updated upstream conflict markers that were breaking TypeScript compilation, preventing the job detail page (/jobs/[id]) from loading real data. Co-Authored-By: Claude Opus 4.6 --- frontend/src/lib/api.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index d51932e..be0745b 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -84,7 +84,6 @@ export interface ApiJob { companyName?: string; companyLogoUrl?: string; companyId: string; -<<<<<<< Updated upstream location?: string | null; type?: string; // Legacy alias employmentType?: string; @@ -94,7 +93,6 @@ export interface ApiJob { salaryType?: string; currency?: string; description: string; -<<<<<<< Updated upstream requirements?: unknown; status: string; createdAt: string; @@ -586,14 +584,18 @@ export const storageApi = { export function transformApiJobToFrontend(apiJob: ApiJob): Job { let reqs: string[] = []; if (apiJob.requirements) { - if (apiJob.requirements.startsWith('[')) { - try { - reqs = JSON.parse(apiJob.requirements); - } catch (e) { + if (Array.isArray(apiJob.requirements)) { + reqs = apiJob.requirements.map(String).filter(Boolean); + } else if (typeof apiJob.requirements === 'string') { + if (apiJob.requirements.startsWith('[')) { + try { + reqs = JSON.parse(apiJob.requirements); + } catch (e) { + reqs = apiJob.requirements.split('\n').filter(Boolean); + } + } else { reqs = apiJob.requirements.split('\n').filter(Boolean); } - } else { - reqs = apiJob.requirements.split('\n').filter(Boolean); } }