diff --git a/app/Http/Controllers/Api/LogInController.php b/app/Http/Controllers/Api/LogInController.php index 48ef4e94..08512bd1 100644 --- a/app/Http/Controllers/Api/LogInController.php +++ b/app/Http/Controllers/Api/LogInController.php @@ -42,6 +42,8 @@ public function __invoke(Request $request): JsonResponse return response() ->json([ 'token' => $apiKey->token, + 'language' => Auth::user()->language, + 'theme' => Auth::user()->theme, ]); } else { $userByEmail = User::query() diff --git a/app/Http/Controllers/Api/SettingsController.php b/app/Http/Controllers/Api/SettingsController.php index 644199a0..090c7bac 100644 --- a/app/Http/Controllers/Api/SettingsController.php +++ b/app/Http/Controllers/Api/SettingsController.php @@ -38,6 +38,10 @@ public function store(Request $request): JsonResponse $apiKey->user()->update(['theme' => $request->get('theme')]); } - return response()->json([]); + return response() + ->json([ + 'language' => $apiKey->user->language, + 'theme' => $apiKey->user->theme, + ]); } } diff --git a/resources/assets/js/prototype/components/App.vue b/resources/assets/js/prototype/components/App.vue index 9beff603..8274faaa 100644 --- a/resources/assets/js/prototype/components/App.vue +++ b/resources/assets/js/prototype/components/App.vue @@ -1,5 +1,16 @@ diff --git a/resources/assets/js/prototype/components/Navigation.vue b/resources/assets/js/prototype/components/Navigation.vue index b45abf73..31a15bb2 100644 --- a/resources/assets/js/prototype/components/Navigation.vue +++ b/resources/assets/js/prototype/components/Navigation.vue @@ -12,26 +12,26 @@ const logOut = () => { - + - + Dashboard - + Transactions - + - + - + diff --git a/resources/assets/js/prototype/screens/Dashboard.vue b/resources/assets/js/prototype/screens/Dashboard.vue index e5d063c0..0d1d64dd 100644 --- a/resources/assets/js/prototype/screens/Dashboard.vue +++ b/resources/assets/js/prototype/screens/Dashboard.vue @@ -22,7 +22,7 @@ const getTimeSensitiveGreeting = () => { - {{ getTimeSensitiveGreeting() }} and welcome to the prototype. + {{ getTimeSensitiveGreeting() }} and welcome to the prototype. diff --git a/resources/assets/js/prototype/screens/Login.vue b/resources/assets/js/prototype/screens/Login.vue index 67694694..480435fa 100644 --- a/resources/assets/js/prototype/screens/Login.vue +++ b/resources/assets/js/prototype/screens/Login.vue @@ -15,6 +15,10 @@ const logIn = () => { if (json.token) { localStorage.setItem('api_key', json.token); + localStorage.setItem('theme', json.theme); + + const e = new Event('themeChanged'); + document.dispatchEvent(e); router.push('dashboard'); } @@ -31,16 +35,16 @@ const logIn = () => { - + - E-mail - + E-mail + - Password - + Password + - Log in + Log in diff --git a/resources/assets/js/prototype/screens/Settings/Preferences.vue b/resources/assets/js/prototype/screens/Settings/Preferences.vue index 7f3679ed..3447b122 100644 --- a/resources/assets/js/prototype/screens/Settings/Preferences.vue +++ b/resources/assets/js/prototype/screens/Settings/Preferences.vue @@ -19,8 +19,13 @@ const retrieve = () => { const update = () => { axios .post('/api/settings', { language: language.value, theme: theme.value }, { headers: { 'api-key': localStorage.getItem('api_key') } }) - .then(() => { + .then(response => { // Done + + localStorage.setItem('theme', response.data.theme); + + const e = new Event('themeChanged'); + document.dispatchEvent(e); }) .catch(() => { alert('Unable to save'); @@ -34,11 +39,11 @@ onMounted(() => retrieve()); - + - Language - + Language + English Dutch Danish @@ -49,8 +54,8 @@ onMounted(() => retrieve()); - Theme - + Theme + Light Dark diff --git a/resources/assets/js/prototype/screens/Transactions/Create.vue b/resources/assets/js/prototype/screens/Transactions/Create.vue index d22c1573..fba35f39 100644 --- a/resources/assets/js/prototype/screens/Transactions/Create.vue +++ b/resources/assets/js/prototype/screens/Transactions/Create.vue @@ -33,28 +33,28 @@ const create = () => { - + - Earning - Spending + Earning + Spending - Tag - + Tag + - Date - + Date + - Description - + Description + - Amount - + Amount + - Create + Create diff --git a/resources/assets/js/prototype/screens/Transactions/Index.vue b/resources/assets/js/prototype/screens/Transactions/Index.vue index a9d174c9..56e99fae 100644 --- a/resources/assets/js/prototype/screens/Transactions/Index.vue +++ b/resources/assets/js/prototype/screens/Transactions/Index.vue @@ -74,13 +74,13 @@ onMounted(() => { - {{ getMonthName(span.month) }} - {{ span.year }} + {{ getMonthName(span.month) }} + {{ span.year }} - + - {{ transaction.description }} + {{ transaction.description }} +{{ (transaction.amount / 100).toFixed(2) }} diff --git a/resources/views/prototype.blade.php b/resources/views/prototype.blade.php index 0bac9233..0363dd28 100644 --- a/resources/views/prototype.blade.php +++ b/resources/views/prototype.blade.php @@ -2,8 +2,13 @@ + - + @vite('resources/assets/js/prototype/app.js')