Skip to content

Commit 2a97a0c

Browse files
committed
Add settings page
1 parent a75ea48 commit 2a97a0c

6 files changed

Lines changed: 122 additions & 8 deletions

File tree

frontend/package-lock.json

Lines changed: 61 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
},
1414
"dependencies": {
1515
"@mdi/font": "^7.4.47",
16+
"pinia": "^3.0.4",
1617
"sql.js": "^1.13.0",
1718
"vue": "^3.5.25",
1819
"vue-router": "^4.6.4",

frontend/src/App.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {useRoute, useRouter} from 'vue-router'
44
import {useSQLite} from "@/composables/useSQLite.js";
55
import FileUploaderView from '@/components/FileUploaderView.vue'
66
import CoinListView from "@/components/CoinListView.vue";
7+
import SettingsView from "@/components/SettingsView.vue";
78
import AboutView from "@/components/AboutView.vue";
89
import CoinView from "@/components/CoinView.vue";
910
import ImagesView from "@/components/ImagesView.vue";
@@ -69,6 +70,13 @@ const handleFileUpload = async (file) => {
6970
@click="router.push('/open'); drawer = false"
7071
:active="route.name === 'open'"
7172
></v-list-item>
73+
<v-list-item
74+
prepend-icon="mdi-cog"
75+
title="Settings"
76+
value="settings"
77+
@click="router.push('/settings'); drawer = false"
78+
:active="route.name === 'settings'"
79+
></v-list-item>
7280
<v-list-item
7381
prepend-icon="mdi-information"
7482
title="About"
@@ -89,6 +97,7 @@ const handleFileUpload = async (file) => {
8997
<CoinView v-if="route.name === 'coin' && isOpened"
9098
v-model:title="title" />
9199
<ImagesView v-if="route.name === 'images' && isOpened" />
100+
<SettingsView v-model:title="title" v-if="route.name === 'settings'" />
92101
<AboutView v-model:title="title" v-if="route.name === 'about'" />
93102
<div v-if="status" class="status">{{ status }}</div>
94103
</v-main>
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<script setup>
2+
import {onMounted, onUnmounted} from "vue";
3+
4+
const props = defineProps({
5+
title: String,
6+
});
7+
const emit = defineEmits(['update:title']);
8+
let oldTitle = null;
9+
10+
onMounted(async () => {
11+
oldTitle = props.title;
12+
emit('update:title', 'Settings');
13+
})
14+
onUnmounted(async () => {
15+
emit('update:title', oldTitle);
16+
})
17+
</script>
18+
19+
<template>
20+
<v-container>
21+
<v-list>
22+
<v-list-item>
23+
<v-btn-toggle
24+
rounded="xl"
25+
border
26+
>
27+
<v-btn icon="mdi-weather-night"></v-btn>
28+
<v-btn icon="mdi-brightness-auto"></v-btn>
29+
<v-btn icon="mdi-weather-sunny"></v-btn>
30+
</v-btn-toggle>
31+
</v-list-item>
32+
<v-list-item>
33+
<v-select
34+
:items="['English',]"
35+
></v-select>
36+
</v-list-item>
37+
</v-list>
38+
</v-container>
39+
</template>
40+
41+
<style scoped>
42+
43+
</style>

frontend/src/main.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,23 @@ import { createApp } from 'vue'
66
// Vuetify
77
import 'vuetify/styles'
88
import { createVuetify } from 'vuetify'
9+
import { createPinia } from 'pinia'
910
import * as components from 'vuetify/components'
1011
import * as directives from 'vuetify/directives'
1112

1213
// Components
1314
import App from './App.vue'
1415
import router from './router'
1516

17+
const pinia = createPinia()
18+
1619
const vuetify = createVuetify({
1720
components,
1821
directives,
1922
})
2023

2124
const app = createApp(App)
25+
app.use(pinia)
2226
app.use(router)
2327
app.use(vuetify)
2428
app.mount('#app')

frontend/src/router/index.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ const routes = [
1717
path: '/open',
1818
name: 'open',
1919
},
20+
{
21+
path: '/settings',
22+
name: 'settings',
23+
},
2024
{
2125
path: '/about',
2226
name: 'about',

0 commit comments

Comments
 (0)