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) => {
);
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}
}
-
- {loading ? t("loginPage.signingIn") : t("loginPage.signIn")}
-
+ {t("loginPage.signIn")}
+