summary refs log tree commit diff stats
path: root/client/src
diff options
context:
space:
mode:
authorAndinus <andinus@nand.sh>2022-02-02 12:34:38 +0530
committerAndinus <andinus@nand.sh>2022-02-02 13:03:34 +0530
commit8234345a00d14fee2b5ca18466f19d2df4b4a5c7 (patch)
tree772fc64f448c000df6ae6bea5387b469c82fa75f /client/src
downloadvela-8234345a00d14fee2b5ca18466f19d2df4b4a5c7.tar.gz
Initial commit
- Initialize the project with PrimeVue for UI.
Diffstat (limited to 'client/src')
-rw-r--r--client/src/App.vue30
-rw-r--r--client/src/components/HelloWorld.vue58
-rw-r--r--client/src/main.js15
-rw-r--r--client/src/router/index.js25
-rw-r--r--client/src/views/About.vue5
-rw-r--r--client/src/views/Home.vue17
6 files changed, 150 insertions, 0 deletions
diff --git a/client/src/App.vue b/client/src/App.vue
new file mode 100644
index 0000000..8e16cf8
--- /dev/null
+++ b/client/src/App.vue
@@ -0,0 +1,30 @@
+<template>
+<div id="nav">
+  <router-link to="/">Home</router-link> |
+  <router-link to="/about">About</router-link>
+</div>
+<router-view/>
+</template>
+
+<style>
+#app {
+    font-family: Avenir, Helvetica, Arial, sans-serif;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    text-align: center;
+    color: #2c3e50;
+}
+
+#nav {
+    padding: 30px;
+}
+
+#nav a {
+    font-weight: bold;
+    color: #2c3e50;
+}
+
+#nav a.router-link-exact-active {
+    color: #42b983;
+}
+</style>
diff --git a/client/src/components/HelloWorld.vue b/client/src/components/HelloWorld.vue
new file mode 100644
index 0000000..649a596
--- /dev/null
+++ b/client/src/components/HelloWorld.vue
@@ -0,0 +1,58 @@
+<template>
+<div class="hello">
+  <h1>{{ msg }}</h1>
+  <p>
+    For a guide and recipes on how to configure / customize this project,<br>
+    check out the
+    <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>.
+  </p>
+  <h3>Installed CLI Plugins</h3>
+  <ul>
+    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li>
+    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li>
+    <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li>
+  </ul>
+  <h3>Essential Links</h3>
+  <ul>
+    <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li>
+    <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li>
+    <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li>
+    <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li>
+    <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li>
+  </ul>
+  <h3>Ecosystem</h3>
+  <ul>
+    <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li>
+    <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li>
+    <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li>
+    <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li>
+    <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li>
+  </ul>
+</div>
+</template>
+
+<script>
+export default {
+    name: 'HelloWorld',
+    props: {
+        msg: String
+    }
+}
+</script>
+
+<style scoped>
+h3 {
+    margin: 40px 0 0;
+}
+ul {
+    list-style-type: none;
+    padding: 0;
+}
+li {
+    display: inline-block;
+    margin: 0 10px;
+}
+a {
+    color: #42b983;
+}
+</style>
diff --git a/client/src/main.js b/client/src/main.js
new file mode 100644
index 0000000..22d1619
--- /dev/null
+++ b/client/src/main.js
@@ -0,0 +1,15 @@
+import {createApp} from 'vue';
+import App from './App.vue';
+import router from './router'
+import PrimeVue from 'primevue/config';
+
+import 'primevue/resources/themes/lara-dark-blue/theme.css';
+import 'primevue/resources/primevue.min.css';
+import 'primeicons/primeicons.css';
+
+const app = createApp(App);
+
+app.use(router);
+app.use(PrimeVue);
+
+app.mount('#app');
diff --git a/client/src/router/index.js b/client/src/router/index.js
new file mode 100644
index 0000000..4300a69
--- /dev/null
+++ b/client/src/router/index.js
@@ -0,0 +1,25 @@
+import { createRouter, createWebHistory } from 'vue-router'
+import Home from '../views/Home.vue'
+
+const routes = [
+    {
+        path: '/',
+        name: 'Home',
+        component: Home
+    },
+    {
+        path: '/about',
+        name: 'About',
+        // route level code-splitting
+        // this generates a separate chunk (about.[hash].js) for this route
+        // which is lazy-loaded when the route is visited.
+        component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
+    }
+]
+
+const router = createRouter({
+    history: createWebHistory(process.env.BASE_URL),
+    routes
+})
+
+export default router
diff --git a/client/src/views/About.vue b/client/src/views/About.vue
new file mode 100644
index 0000000..3fa2807
--- /dev/null
+++ b/client/src/views/About.vue
@@ -0,0 +1,5 @@
+<template>
+  <div class="about">
+    <h1>This is an about page</h1>
+  </div>
+</template>
diff --git a/client/src/views/Home.vue b/client/src/views/Home.vue
new file mode 100644
index 0000000..65a73a1
--- /dev/null
+++ b/client/src/views/Home.vue
@@ -0,0 +1,17 @@
+<template>
+  <div class="home">
+    <HelloWorld msg="Welcome to Your Vue.js App"/>
+  </div>
+</template>
+
+<script>
+// @ is an alias to /src
+import HelloWorld from '@/components/HelloWorld.vue'
+
+export default {
+  name: 'Home',
+  components: {
+    HelloWorld
+  }
+}
+</script>