Commit c5af6548 authored by Anthony Jacob's avatar Anthony Jacob
Browse files

forgot to manage Experience link_text

parent dcbe09ae
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -17,10 +17,19 @@ const getJobTitle = (translations?: ExperienceTranslation[]): string => {
    );
};

const getJobLinkText = (translations?: ExperienceTranslation[]): string => {
    if (!translations || translations.length === 0) return '';
    return (
        translations.find(t => t.language_code === 'fr')?.link_text ||
        translations[0].link_text ||
        ''
    );
};

export default function ExperienceListClient({ data }: ExperienceListClientProps) {
    const router = useRouter();
    const Experiences = Array.isArray(data?.experiences) ? data.experiences : [];

    console.log("Experience", Experiences);
    const [selectedExperiences, setselectedExperiences] = useState<Record<number, boolean>>({});
    const handleSelect = (id: number, checked: boolean) => {
        setselectedExperiences((prev) => ({ ...prev, [id]: checked }));
@@ -100,6 +109,7 @@ export default function ExperienceListClient({ data }: ExperienceListClientProps
                        <th></th>
                        <th>ID</th>
                        <th>Title</th>
                        <th>Company</th>
                        <th>Start Date</th>
                        <th>End Date</th>
                        <th>Edit</th>
@@ -118,6 +128,7 @@ export default function ExperienceListClient({ data }: ExperienceListClientProps
                            </td>
                            <td>{experience.id}</td>
                            <td>{getJobTitle(experience.translations)}</td>
                            <td>{getJobLinkText(experience.translations)}</td>
                            <td>{experience.start_date ? new Date(experience.start_date).toISOString().split('T')[0] : ''}</td>
                            <td>{experience.end_date ? new Date(experience.end_date).toISOString().split('T')[0] : ''}</td>
                            <td>
+20 −3
Original line number Diff line number Diff line
@@ -41,7 +41,8 @@ export default function ExperienceEditPageClient({ data, enabledLanguage }: Expe
                    language_code: t.language_code || "",
                    job_title: t.job_title || "",
                    job_description: t.job_description || "",
                    job_place: t.job_place || ""
                    job_place: t.job_place || "",
                    link_text: t.link_text || ""
                };
            });
        } else if (data.translations && typeof data.translations === 'object') {
@@ -50,13 +51,14 @@ export default function ExperienceEditPageClient({ data, enabledLanguage }: Expe
                    language_code: t.language_code || "",
                    job_title: t.job_title || "",
                    job_description: t.job_description || "",
                    job_place: t.job_place || ""
                    job_place: t.job_place || "",
                    link_text: t.link_text || ""
                };
            });
        }
        enabledLanguageList.forEach((l) => {
            if (!initial[l.language_code]) {
                initial[l.language_code] = { language_code: "", job_title: "", job_description: "", job_place: "" };
                initial[l.language_code] = { language_code: "", job_title: "", job_description: "", job_place: "", link_text: "" };
            }
        });
        return initial;
@@ -263,6 +265,21 @@ export default function ExperienceEditPageClient({ data, enabledLanguage }: Expe
                                }))}
                            />
                        </div>
                        <div className="mb-3">
                            <label htmlFor={`link_text-${lang.language_code}`} className="form-label">Company / Link text</label>
                            <input
                                id={`link_text-${lang.language_code}`}
                                className="form-control"
                                value={translations[lang.language_code]?.link_text || ""}
                                onChange={e => setTranslations(prev => ({
                                    ...prev,
                                    [lang.language_code]: {
                                        ...prev[lang.language_code],
                                        link_text: e.target.value
                                    }
                                }))}
                            />
                        </div>
                        <div className="mb-3">
                            <label htmlFor={`job_place-${lang.language_code}`} className="form-label">Job Place</label>
                            <input
+4 −2
Original line number Diff line number Diff line
@@ -28,7 +28,8 @@ export async function saveExperience(
        language_code,
        job_title: t.job_title,
        job_description: t.job_description,
        job_place: t.job_place
        job_place: t.job_place,
        link_text: t.link_text
    }));

    const body = JSON.stringify({
@@ -68,7 +69,8 @@ export async function saveNewExperience(
        language_code,
        job_title: t.job_title,
        job_description: t.job_description,
        job_place: t.job_place
        job_place: t.job_place,
        link_text: t.link_text
    }));
    const body = JSON.stringify({
        end_date: end_date ? formatDate(end_date) : null,
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ export type ExperienceTranslation = {
    language_code: string;
    job_description: string;
    job_place: string;
    link_text: string;
};

export type ExperienceTranslations = {