diff --git a/app/[locale]/account/LogoutButton.tsx b/app/[locale]/account/LogoutButton.tsx
new file mode 100644
index 0000000..d4bc1b1
--- /dev/null
+++ b/app/[locale]/account/LogoutButton.tsx
@@ -0,0 +1,20 @@
+"use client";
+
+import { FC } from 'react';
+import LogoutIcon from "@mui/icons-material/Logout";
+import { signOut } from 'next-auth/react';
+import { useLocale, useTranslations } from 'next-intl';
+import { Button } from '@/app/ui/button';
+
+export const LogoutButton: FC = () => {
+ const t = useTranslations('account-page');
+ const locale = useLocale();
+
+ const handleLogout = () => {
+ signOut({ callbackUrl: `/${locale}/login` });
+ };
+
+ return (
+
+ )
+}
\ No newline at end of file
diff --git a/app/[locale]/account/page.tsx b/app/[locale]/account/page.tsx
index 4c0003d..d60ace9 100644
--- a/app/[locale]/account/page.tsx
+++ b/app/[locale]/account/page.tsx
@@ -1,33 +1,28 @@
-import { FC, Suspense } from 'react';
+import { FC } from 'react';
import { Main } from '@/app/ui/Main';
-import { UserSettingsForm as UserSettingsForm, UserSettingsFormSkeleton } from '@/app/ui/UserSettingsForm';
-import { getUserSettings } from '@/app/lib/actions/userSettingsActions';
+import Link from 'next/link';
+import SettingsIcon from "@mui/icons-material/Settings";
+import AccountCircle from "@mui/icons-material/AccountCircle";
+import { getTranslations, getLocale } from 'next-intl/server';
+import { LogoutButton } from './LogoutButton';
-const AccountPage: FC = async () => {
- const userSettings = await getUserSettings();
+const Page: FC = async () => {
+ const t = await getTranslations('account-page');
+ const locale = await getLocale();
return (
-
+
+
+
{t('title')}
+
{t('settings-button')}
+
+
+
);
};
-const Page: FC = () => {
- return (
-
-
-
- }>
-
-
- );
-};
-
export default Page;
diff --git a/app/[locale]/account/settings/page.tsx b/app/[locale]/account/settings/page.tsx
new file mode 100644
index 0000000..f4cab95
--- /dev/null
+++ b/app/[locale]/account/settings/page.tsx
@@ -0,0 +1,33 @@
+import { FC, Suspense } from 'react';
+import { Main } from '@/app/ui/Main';
+import { UserSettingsForm as UserSettingsForm, UserSettingsFormSkeleton } from '@/app/ui/UserSettingsForm';
+import { getUserSettings } from '@/app/lib/actions/userSettingsActions';
+
+const UserSettingsPage: FC = async () => {
+ const userSettings = await getUserSettings();
+
+ return (
+
+
+
+
+
+ );
+};
+
+const Page: FC = () => {
+ return (
+
+
+
+ }>
+
+
+ );
+};
+
+export default Page;
diff --git a/app/lib/auth.ts b/app/lib/auth.ts
index 5c09a61..dac126a 100644
--- a/app/lib/auth.ts
+++ b/app/lib/auth.ts
@@ -35,8 +35,8 @@ export const authConfig: NextAuthConfig = {
// see: https://stackoverflow.com/questions/70409219/get-user-id-from-session-in-next-auth-client
jwt({ token, account, user }) {
if (account) {
- // console.log("(jwt) account:", account);
- // console.log("(jwt) user:", user);
+ // console.log("(JWT) account:", account);
+ // console.log("(JWT) user:", user);
token.accessToken = account.access_token;
// attach Google account ID to the token
token.piggyback_providerAccountId = account.providerAccountId;
@@ -51,7 +51,7 @@ export const authConfig: NextAuthConfig = {
if(session.user && token) {
// assign Google account ID from the token to the Session user ID
session.user.id = token.piggyback_providerAccountId;
- // console.log("(jwt) token:", token);
+// console.log("(SESSION) token:", token);
}
return session;
},
diff --git a/app/ui/PageHeader.tsx b/app/ui/PageHeader.tsx
index 2c02d7e..04d2b15 100644
--- a/app/ui/PageHeader.tsx
+++ b/app/ui/PageHeader.tsx
@@ -1,7 +1,7 @@
import Image from "next/image";
import Link from "next/link";
import { SelectLanguage } from "./SelectLanguage";
-import Settings from "@mui/icons-material/Settings";
+import AccountCircle from "@mui/icons-material/AccountCircle";
export const PageHeader = () =>
@@ -9,6 +9,6 @@ export const PageHeader = () =>
-
+
\ No newline at end of file
diff --git a/messages/en.json b/messages/en.json
index e61aaa7..50c0a1c 100644
--- a/messages/en.json
+++ b/messages/en.json
@@ -2,6 +2,11 @@
"Index": {
"title": "Welcome!"
},
+ "account-page": {
+ "title": "User account",
+ "settings-button": "User Settings",
+ "logout-button": "Logout"
+ },
"PageFooter": {
"app-description": "Helping you to stay on top of your utility bills",
"links": {
diff --git a/messages/hr.json b/messages/hr.json
index d437e10..cd3a06c 100644
--- a/messages/hr.json
+++ b/messages/hr.json
@@ -2,6 +2,11 @@
"Index": {
"title": "Dobrodošli"
},
+ "account-page": {
+ "title": "Korisnički račun",
+ "settings-button": "Korisničke postavke",
+ "logout-button": "Odjava"
+ },
"PageFooter": {
"app-description": "Preuzmite kontrolu nad svojim režijama!",
"links": {
diff --git a/package-lock.json b/package-lock.json
index d0b1d90..4740841 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,11 +1,11 @@
{
"name": "evidencija-rezija",
- "version": "2.6.0",
+ "version": "2.6.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
- "version": "2.6.0",
+ "version": "2.6.2",
"dependencies": {
"@emotion/react": "^11.14.0",
"@emotion/styled": "^11.14.1",
diff --git a/package.json b/package.json
index a6b3565..ce12caa 100644
--- a/package.json
+++ b/package.json
@@ -59,5 +59,5 @@
"engines": {
"node": ">=18.17.0"
},
- "version": "2.6.0"
+ "version": "2.6.2"
}