diff --git a/frontend/apply/src/app/account/page.tsx b/frontend/apply/src/app/account/page.tsx index 34cb3dc..e152897 100644 --- a/frontend/apply/src/app/account/page.tsx +++ b/frontend/apply/src/app/account/page.tsx @@ -603,7 +603,8 @@ export default function Account() { onSubmit={handlePasswordSubmit} title={t("accountPage.changePassword")} primaryButtonDisabled={passwordLoading} - primaryButtonText={passwordLoading ? t("common.saving") : t("accountPage.changePassword")} + primaryButtonText={t("accountPage.changePassword")} + primaryButtonLoading={passwordLoading} secondaryButtonDisabled={passwordLoading} > {passwordSuccess ? ( @@ -768,7 +769,8 @@ export default function Account() { onSubmit={handleDeleteAccount} title={t("accountPage.deleteAccount")} primaryButtonDisabled={deleteLoading} - primaryButtonText={deleteLoading ? t("accountPage.deleting") : t("common.delete")} + primaryButtonText={t("common.delete")} + primaryButtonLoading={deleteLoading} secondaryButtonDisabled={deleteLoading} >

{t("accountPage.deleteAccountConfirmation")}

diff --git a/frontend/apply/src/app/components/ApplicationCard.tsx b/frontend/apply/src/app/components/ApplicationCard.tsx index 29d4abe..38d2365 100644 --- a/frontend/apply/src/app/components/ApplicationCard.tsx +++ b/frontend/apply/src/app/components/ApplicationCard.tsx @@ -7,6 +7,7 @@ import { formatDateRange } from "@/utils/dateFormat"; import { Application } from "@/utils/types"; import { getImageUrl } from "@/utils/imageUrl"; import Image from "next/image"; +import Link from "next/link"; type Props = { application: Application; @@ -58,12 +59,12 @@ const ApplicationCard = ({ application }: Props) => {
- {t("common.viewApplication")} - +
); diff --git a/frontend/apply/src/app/components/ApplicationForm.tsx b/frontend/apply/src/app/components/ApplicationForm.tsx index b6d6abf..a938e95 100644 --- a/frontend/apply/src/app/components/ApplicationForm.tsx +++ b/frontend/apply/src/app/components/ApplicationForm.tsx @@ -11,6 +11,7 @@ import "@/i18n/config"; import FormInput from "./FormInput"; import FormTextarea from "./FormTextarea"; import Modal from "./Modal"; +import Button from "./Button"; import PositionInfoCard from "./PositionInfoCard"; type ApplicationFormProps = { @@ -165,7 +166,6 @@ export default function ApplicationForm({ const handleDeleteDraft = async (event: React.FormEvent) => { event.preventDefault(); - console.log("Deleting draft with ID:", draftId); if (!isDraft || draftId === null) return; setDeletingDraft(true); setError(null); @@ -360,7 +360,7 @@ export default function ApplicationForm({ {editable ? ( <>
- + {t("applicationForm.saveDraft")} + {showDraftSavedMessage && (

@@ -390,7 +391,7 @@ export default function ApplicationForm({ )}

- + {t("common.apply")} + {isDraft && ( )} - + diff --git a/frontend/apply/src/app/components/OpenPositionCard.tsx b/frontend/apply/src/app/components/OpenPositionCard.tsx index f95191d..6668a0b 100644 --- a/frontend/apply/src/app/components/OpenPositionCard.tsx +++ b/frontend/apply/src/app/components/OpenPositionCard.tsx @@ -7,6 +7,7 @@ import "@/i18n/config"; import { formatDate } from "@/utils/dateFormat"; import Image from "next/image"; import { getImageUrl } from "@/utils/imageUrl"; +import Link from "next/link"; type Props = { position: Position; @@ -42,7 +43,7 @@ const OpenPositionCard = ({ position }: Props) => {

{t("openPositionCard.deadline")}: {formatDate(position.recruitment_end)}

- e.stopPropagation()} href={`/apply/${position.id}`} @@ -52,7 +53,7 @@ const OpenPositionCard = ({ position }: Props) => { : position.user_app_status === "In draft" ? t("openPositionCard.openDraft") : t("common.apply")} - + diff --git a/frontend/apply/src/app/i18n/locales/en.json b/frontend/apply/src/app/i18n/locales/en.json index 45e97fd..c648c25 100644 --- a/frontend/apply/src/app/i18n/locales/en.json +++ b/frontend/apply/src/app/i18n/locales/en.json @@ -71,7 +71,6 @@ "password": "Password", "emailRequired": "Email is required", "passwordRequired": "Password is required", - "signingIn": "Signing in...", "signIn": "Sign in", "noAccount": "Don't have an account? Register here", "forgotPassword": "Forgot password?", @@ -136,8 +135,7 @@ "deleteAccount": "Delete Account", "deleteAccountConfirmation": "Are you sure you want to delete your account? This action cannot be undone.", "accountDeletePasswordError": "Failed to delete account. Current password is incorrect.", - "accountDeleteError": "Failed to delete account. Please try again.", - "deleting": "Deleting..." + "accountDeleteError": "Failed to delete account. Please try again." }, "openPositionCard": { "deadline": "Deadline", diff --git a/frontend/apply/src/app/i18n/locales/sv.json b/frontend/apply/src/app/i18n/locales/sv.json index 72a6c5a..acce13d 100644 --- a/frontend/apply/src/app/i18n/locales/sv.json +++ b/frontend/apply/src/app/i18n/locales/sv.json @@ -71,7 +71,6 @@ "password": "Lösenord", "emailRequired": "E-post krävs", "passwordRequired": "Lösenord krävs", - "signingIn": "Loggar in...", "signIn": "Logga in", "noAccount": "Har du inget konto? Registrera dig här", "forgotPassword": "Glömt lösenord?", @@ -136,8 +135,7 @@ "deleteAccount": "Radera konto", "deleteAccountConfirmation": "Är du säker på att du vill radera ditt konto? Denna åtgärd kan inte ångras.", "accountDeletePasswordError": "Det gick inte att radera kontot. Nuvarande lösenord är felaktigt.", - "accountDeleteError": "Det gick inte att radera kontot. Försök igen.", - "deleting": "Raderar..." + "accountDeleteError": "Det gick inte att radera kontot. Försök igen." }, "openPositionCard": { "deadline": "Sista ansökningsdag", diff --git a/frontend/apply/src/app/login/page.tsx b/frontend/apply/src/app/login/page.tsx index eadd22b..1adcdf3 100644 --- a/frontend/apply/src/app/login/page.tsx +++ b/frontend/apply/src/app/login/page.tsx @@ -3,6 +3,7 @@ import { useState } from "react"; import { useRouter } from "next/navigation"; import TextInput from "@/components/TextInput"; +import Button from "@/components/Button"; import styles from "./login.module.css"; import { logIn } from "@/utils/auth"; import { useTranslation } from "react-i18next"; @@ -73,18 +74,21 @@ export default function Login() { name="password" type="password" placeholder={t("loginPage.passwordPlaceholder")} - error={error && password === "" ? t("loginPage.passwordRequired") : ""} + error={ + error && password === "" ? t("loginPage.passwordRequired") : "" + } /> {error &&
{error}
} - + {t("loginPage.signIn")} +