Skip to content

Commit 976a6e4

Browse files
feat(auth, home, tasks, users): footer enabled from router ✨ (#1750)
1 parent 8068534 commit 976a6e4

File tree

11 files changed

+62
-138
lines changed

11 files changed

+62
-138
lines changed

src/config/defaults/development.cjs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ module.exports = {
6363
theme: {
6464
dark: 'auto', // dark theme true / false / auto (based on prefers-color-scheme)
6565
flat: true, // flat by default
66-
footer: false, // display footer
6766
snackbar: {
6867
// kind of notifications on requests
6968
status: true, // activate for error

src/modules/_app/app.vue

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,12 @@
2424
<router-view />
2525
</v-main>
2626

27-
<waosFooter v-if="config.vuetify.theme.footer" />
27+
<waosFooter
28+
v-bind:links="config.home.links"
29+
v-bind:custom="{
30+
section: { background: config.vuetify.theme.themes[theme].colors.surface, 'min-width': '100%' },
31+
}"
32+
/>
2833
</v-app>
2934
</template>
3035

@@ -121,9 +126,4 @@ export default {
121126
.v-card {
122127
border: none !important;
123128
}
124-
.footer {
125-
position: fixed;
126-
width: 100%;
127-
bottom: 0;
128-
}
129129
</style>
Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,27 @@
11
<template>
2-
<v-footer
3-
:style="{
4-
background: this.config.vuetify.theme.themes[theme].colors.primary,
5-
color: config.vuetify.theme.themes[theme].colors.onPrimary,
6-
}"
7-
app
8-
>
9-
<div class="flex-grow-1"></div>
10-
<div>
11-
<span role="img" aria-label="copyright"> &copy; </span> 2019
12-
<a href="https://weareopensource.me" style="color: white; text-decoration: none">We Are Open Source</a>
13-
</div>
2+
<v-footer v-if="enabled" class="pa-0 align-end" :style="{ background: config.vuetify.theme.themes[theme].colors.background }" app>
3+
<v-container class="footer pa-6" :style="custom && custom.section ? custom.section : null" v-if="links.length > 0">
4+
<v-row>
5+
<v-col
6+
v-for="({ items, title }, i) in links.filter((section) => section.items)"
7+
:key="i"
8+
cols="12"
9+
:md="12 / links.filter((section) => section.items).length"
10+
>
11+
<v-card :flat="config.vuetify.theme.flat" :style="custom && custom.section ? custom.section : null">
12+
<v-card-title class="justify-center text-h6 text-medium-emphasis" v-text="title"></v-card-title>
13+
<v-list :style="custom && custom.section ? custom.section : null">
14+
<v-list-item v-for="(item, i) in items" :key="i" :to="item.url" class="justify-center">
15+
<v-list-item-title>
16+
<v-icon size="16" class="mr-2 text-onSurface text-medium-emphasis">{{ item.icon }}</v-icon>
17+
<span class="text-secondary text-subtitle-2"> {{ item.label }} </span>
18+
</v-list-item-title>
19+
</v-list-item>
20+
</v-list>
21+
</v-card>
22+
</v-col>
23+
</v-row>
24+
</v-container>
1425
</v-footer>
1526
</template>
1627

@@ -24,8 +35,21 @@ import { mapGetters } from 'vuex';
2435
*/
2536
export default {
2637
name: 'waosFooter',
38+
data() {
39+
return {
40+
enabled: false,
41+
};
42+
},
43+
props: ['links', 'custom'],
44+
2745
computed: {
2846
...mapGetters(['theme']),
2947
},
48+
watch: {
49+
$route(route) {
50+
if (route.meta && route.meta.footer) this.enabled = true;
51+
else this.enabled = false;
52+
},
53+
},
3054
};
3155
</script>

src/modules/auth/router/auth.router.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,39 @@ export default [
1717
component: signin,
1818
meta: {
1919
icon: 'fa-solid fa-user',
20-
display: false, // hide any time
20+
display: false, // hide from drawer any time
2121
},
2222
},
2323
{
2424
path: '/signup',
2525
name: 'Signup',
2626
component: signup,
2727
meta: {
28-
display: false, // hide any time
28+
display: false, // hide from drawer any time
2929
},
3030
},
3131
{
3232
path: '/forgot',
3333
name: 'Forgot',
3434
component: forgot,
3535
meta: {
36-
display: false, // hide any time
36+
display: false, // hide from drawer any time
3737
},
3838
},
3939
{
4040
path: '/reset',
4141
name: 'Reset',
4242
component: reset,
4343
meta: {
44-
display: false, // hide any time
44+
display: false, // hide from drawer any time
4545
},
4646
},
4747
{
4848
path: '/token',
4949
name: 'Token',
5050
component: token,
5151
meta: {
52-
display: false, // hide any time
52+
display: false, // hide from drawer any time
5353
},
5454
},
5555
];

src/modules/home/components/home.links.component.vue

Lines changed: 0 additions & 76 deletions
This file was deleted.

src/modules/home/router/home.router.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,41 +15,45 @@ export default [
1515
component: home,
1616
meta: {
1717
icon: 'fa-solid fa-house',
18+
footer: true, // display footer
1819
},
1920
},
2021
{
2122
path: '/changelogs',
2223
name: 'changelogs',
2324
component: pages,
2425
meta: {
25-
display: false, // hide any time
26+
display: false, // hide from drawer any time
2627
title: 'Changelogs',
2728
data: 'getChangelogs', // array of {title: ..., markdown: ...}
29+
footer: true, // display footer
2830
},
2931
},
3032
{
3133
path: '/team',
3234
name: 'Team',
3335
component: team,
3436
meta: {
35-
display: false, // hide any time
37+
display: false, // hide from drawer any time
3638
title: 'Team',
39+
footer: true, // display footer
3740
},
3841
},
3942
{
4043
path: '/pages/:name',
4144
name: 'Pages',
4245
component: pages,
4346
meta: {
44-
display: false, // hide any time
47+
display: false, // hide from drawer any time
4548
data: 'getPages', // array of {title: ..., markdown: ...}
49+
footer: true, // display footer
4650
},
4751
},
4852
{
4953
path: '/:catchAll(.*)',
5054
redirect: { name: 'Home' },
5155
meta: {
52-
display: false, // hide any time
56+
display: false, // hide from drawer any time
5357
},
5458
},
5559
];

src/modules/home/views/home.view.vue

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,6 @@
2828
}"
2929
></homeBlogComponent>
3030
<homeContactComponent></homeContactComponent>
31-
<homeLinksComponent
32-
v-bind:links="config.home.links"
33-
v-bind:custom="{
34-
section: { background: config.vuetify.theme.themes[theme].colors.surface },
35-
}"
36-
class="footer"
37-
></homeLinksComponent>
3831
</div>
3932
</template>
4033

@@ -50,7 +43,6 @@ import homeSlideshowComponent from '../components/home.slideshow.component.vue';
5043
import homeStatsComponent from '../components/home.stats.component.vue';
5144
import homeBlogComponent from '../components/home.blog.component.vue';
5245
import homeContactComponent from '../components/home.contact.component.vue';
53-
import homeLinksComponent from '../components/home.links.component.vue';
5446
5547
/**
5648
* Export default
@@ -64,7 +56,6 @@ export default {
6456
homeStatsComponent,
6557
homeBlogComponent,
6658
homeContactComponent,
67-
homeLinksComponent,
6859
},
6960
computed: {
7061
...mapGetters(['theme', 'news', 'statistics']),

src/modules/home/views/pages.view.vue

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
></homeBannerComponent>
88
<section id="page">
99
<!-- Multiple Pages -->
10-
<v-container v-if="contents.length > 1" class="pb-12">
10+
<v-container v-if="contents.length > 1" class="my-6">
1111
<v-card flat>
1212
<v-tabs v-model="tab" background-color="background" fixed-tabs>
1313
<v-tab v-for="content in contents" :key="content.title" :value="content.title" color="secondary">{{ content.title }}</v-tab>
1414
</v-tabs>
15-
<v-card-text>
15+
<v-card-text class="pa-12">
1616
<v-window v-model="tab">
1717
<v-window-item
1818
v-for="content in contents"
@@ -30,27 +30,20 @@
3030
</v-card>
3131
</v-container>
3232
<!-- One Page -->
33-
<v-container v-if="contents.length === 1">
33+
<v-container v-if="contents.length === 1" class="my-6">
3434
<v-card
3535
flat
3636
:style="{
3737
background: config.vuetify.theme.themes[theme].colors.surface,
3838
color: config.vuetify.theme.themes[theme].colors.onSurface,
3939
}"
4040
>
41-
<v-card-text class="pa-8">
41+
<v-card-text class="pa-12">
4242
<v-markdown :source="contents[0].markdown" :class="contents[0].style" />
4343
</v-card-text>
4444
</v-card>
4545
</v-container>
4646
</section>
47-
<homeLinksComponent
48-
v-bind:links="config.home.links"
49-
v-bind:custom="{
50-
section: { background: config.vuetify.theme.themes[theme].colors.surface },
51-
}"
52-
class="footer"
53-
></homeLinksComponent>
5447
</div>
5548
</template>
5649

@@ -61,7 +54,6 @@
6154
import { mapGetters } from 'vuex';
6255
import _ from 'lodash';
6356
import homeBannerComponent from '../components/home.banner.component.vue';
64-
import homeLinksComponent from '../components/home.links.component.vue';
6557
6658
/**
6759
* Export default
@@ -76,7 +68,6 @@ export default {
7668
},
7769
components: {
7870
homeBannerComponent,
79-
homeLinksComponent,
8071
},
8172
computed: {
8273
...mapGetters(['theme', 'contents']),

src/modules/home/views/team.view.vue

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,6 @@
66
<teamMemberComponent v-for="(item, index) in team" v-bind:item="item" v-bind:index="index" v-bind:key="item.id"></teamMemberComponent>
77
</v-layout>
88
</v-container>
9-
<homeLinksComponent
10-
v-bind:links="config.home.links"
11-
v-bind:custom="{
12-
section: { background: config.vuetify.theme.themes[theme].colors.surface },
13-
}"
14-
class="footer"
15-
></homeLinksComponent>
169
</div>
1710
</template>
1811

@@ -23,7 +16,6 @@
2316
import { mapGetters } from 'vuex';
2417
import teamMemberComponent from '../components/team.member.component.vue';
2518
import homeBannerComponent from '../components/home.banner.component.vue';
26-
import homeLinksComponent from '../components/home.links.component.vue';
2719
2820
/**
2921
* Export default
@@ -41,7 +33,6 @@ export default {
4133
components: {
4234
homeBannerComponent,
4335
teamMemberComponent,
44-
homeLinksComponent,
4536
},
4637
computed: {
4738
...mapGetters(['theme', 'team']),

0 commit comments

Comments
 (0)