Skip to content

Commit e6af2ef

Browse files
committed
Add About view
1 parent 5aff67c commit e6af2ef

7 files changed

Lines changed: 103 additions & 13 deletions

File tree

frontend/.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
VITE_APP_VERSION=$npm_package_version

frontend/package-lock.json

Lines changed: 22 additions & 0 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
@@ -15,6 +15,7 @@
1515
"@mdi/font": "^7.4.47",
1616
"sql.js": "^1.13.0",
1717
"vue": "^3.5.25",
18+
"vue-router": "^4.6.4",
1819
"vuetify": "^3.11.4"
1920
},
2021
"devDependencies": {

frontend/src/App.vue

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ const status = ref('');
1212
1313
let SQL = null;
1414
15+
import { useRoute, useRouter } from 'vue-router'
16+
17+
const router = useRouter()
18+
const route = useRoute()
19+
20+
const drawer = ref(false)
21+
22+
const goToHome = () => {
23+
router.push('/')
24+
drawer.value = false
25+
}
26+
1527
onMounted(async () => {
1628
try {
1729
SQL = await initSqlJs({
@@ -62,32 +74,41 @@ const handleFileUpload = async (file) => {
6274
6375
reader.readAsArrayBuffer(file);
6476
};
65-
66-
const items = [
67-
{
68-
title: 'About',
69-
value: 'about',
70-
},
71-
];
72-
const drawer = ref(false);
7377
</script>
7478

7579
<template>
7680
<v-layout>
77-
<v-app-bar color="primary">
81+
<v-app-bar color="primary" v-if="route.path === '/'">
7882
<v-app-bar-nav-icon
79-
variant="text"
8083
@click.stop="drawer = !drawer"
8184
></v-app-bar-nav-icon>
8285

8386
<v-toolbar-title>OpenNumismat</v-toolbar-title>
8487
</v-app-bar>
88+
<v-app-bar color="primary" v-else>
89+
<v-app-bar-nav-icon
90+
icon="mdi-chevron-left"
91+
@click.stop="goToHome()"
92+
></v-app-bar-nav-icon>
93+
94+
<v-toolbar-title>About</v-toolbar-title>
95+
</v-app-bar>
8596

8697
<v-navigation-drawer v-model="drawer" temporary>
87-
<v-list :items="items"></v-list>
98+
<v-list>
99+
<v-list-item
100+
prepend-icon="mdi-information"
101+
title="About"
102+
value="about"
103+
@click="router.push('/about')"
104+
:active="route.path === '/about'"
105+
></v-list-item>
106+
</v-list>
88107
</v-navigation-drawer>
89108

90-
<v-main>
109+
<router-view></router-view>
110+
111+
<v-main v-if="route.path !== '/about'">
91112
<div v-if="!selectedFile" class="select-view">
92113
<FileUploader :handleFile="handleFileUpload" />
93114
<p>Your file not will be uploaded to the internet. You can disable internet connection.</p>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<script setup>
2+
const appVersion = import.meta.env.VITE_APP_VERSION;
3+
</script>
4+
5+
<template>
6+
<v-container>
7+
<v-card>
8+
<v-card-title>OpenNumismat Web {{ appVersion }}</v-card-title>
9+
<v-card-text>
10+
<p>Copyright (C) 2025 Vitaly Ignatov</p>
11+
<p>OpenNumismat Web is freeware licensed under a GPLv3</p>
12+
<p>Homepage: https://opennumismat.github.io</p>
13+
</v-card-text>
14+
</v-card>
15+
</v-container>
16+
</template>
17+
18+
<style scoped>
19+
20+
</style>

frontend/src/main.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import './assets/main.css'
22
import '@mdi/font/css/materialdesignicons.css'
33

4+
import router from './router'
5+
46
import { createApp } from 'vue'
57

68
// Vuetify
@@ -17,4 +19,4 @@ const vuetify = createVuetify({
1719
directives,
1820
})
1921

20-
createApp(App).use(vuetify).mount('#app')
22+
createApp(App).use(router).use(vuetify).mount('#app')

frontend/src/router/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { createRouter, createWebHistory } from 'vue-router'
2+
//import HomePage from '../components/HomeView.vue'
3+
import AboutPage from '../components/AboutView.vue'
4+
5+
const routes = [
6+
{
7+
path: '/',
8+
name: 'home',
9+
// component: HomePage
10+
},
11+
{
12+
path: '/about',
13+
name: 'about',
14+
component: AboutPage
15+
}
16+
]
17+
18+
const router = createRouter({
19+
history: createWebHistory(),
20+
routes
21+
})
22+
23+
export default router

0 commit comments

Comments
 (0)