2019-01-11 20:20:21 +00:00
|
|
|
<template lang="html">
|
2019-01-17 06:21:41 +00:00
|
|
|
<div :class="['gameboard-placeholder', { dark: darkModeEnabled }]">
|
2019-05-08 22:32:52 +00:00
|
|
|
<div
|
|
|
|
:class="`list ${list.view || 'single'}`"
|
|
|
|
v-for="list in lists"
|
|
|
|
:key="list.name"
|
|
|
|
>
|
2019-01-11 20:20:21 +00:00
|
|
|
<div class="list-header" />
|
|
|
|
|
|
|
|
<div class="games">
|
2019-04-19 16:52:45 +00:00
|
|
|
<placeholder
|
|
|
|
image
|
|
|
|
v-for="n in list.games.length"
|
2019-06-07 16:05:18 +00:00
|
|
|
:lines="list && list.view === 'grid' ? 0 : 2"
|
2019-04-19 16:52:45 +00:00
|
|
|
:key="n"
|
|
|
|
/>
|
2019-01-11 20:20:21 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
2019-01-17 06:21:41 +00:00
|
|
|
import { mapState, mapGetters } from 'vuex';
|
2019-08-06 22:45:59 +00:00
|
|
|
import Placeholder from '@/components/Placeholder';
|
2019-01-11 20:20:21 +00:00
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
|
|
|
Placeholder,
|
|
|
|
},
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
...mapState(['gameLists', 'platform']),
|
2019-01-17 06:21:41 +00:00
|
|
|
...mapGetters(['darkModeEnabled']),
|
2019-01-11 20:20:21 +00:00
|
|
|
|
|
|
|
lists() {
|
2019-02-16 04:45:14 +00:00
|
|
|
return this.gameLists && this.platform && this.gameLists[this.platform.code]
|
2019-01-11 20:20:21 +00:00
|
|
|
? this.gameLists[this.platform.code]
|
2019-02-16 04:45:14 +00:00
|
|
|
: [];
|
2019-01-11 20:20:21 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
randomColumn() {
|
|
|
|
return Math.floor(Math.random() * 4) + 1;
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" rel="stylesheet/scss" scoped>
|
2019-04-05 19:16:32 +00:00
|
|
|
@import "~styles/styles.scss";
|
2019-01-11 20:20:21 +00:00
|
|
|
|
|
|
|
.gameboard-placeholder {
|
|
|
|
user-select: none;
|
|
|
|
display: flex;
|
|
|
|
align-items: flex-start;
|
|
|
|
}
|
|
|
|
|
|
|
|
.list {
|
|
|
|
flex-shrink: 0;
|
|
|
|
cursor: default;
|
|
|
|
border-radius: $border-radius;
|
|
|
|
background: $color-white;
|
|
|
|
overflow: hidden;
|
|
|
|
position: relative;
|
|
|
|
width: $list-width;
|
|
|
|
margin-right: $gp;
|
|
|
|
max-height: calc(100vh - 81px);
|
2019-04-19 16:52:45 +00:00
|
|
|
|
|
|
|
&.wide {
|
|
|
|
width: $list-width-wide;
|
|
|
|
--placeholder-image-width: 80px;
|
|
|
|
--placeholder-image-height: 80px;
|
|
|
|
}
|
|
|
|
|
2019-06-07 16:05:18 +00:00
|
|
|
&.grid {
|
2019-04-19 16:52:45 +00:00
|
|
|
--placeholder-image-width: 90px;
|
|
|
|
}
|
|
|
|
|
2019-06-07 16:05:18 +00:00
|
|
|
&.grid .games {
|
2019-04-19 16:52:45 +00:00
|
|
|
padding-top: $gp / 2;
|
|
|
|
display: grid;
|
|
|
|
grid-template-columns: 1fr 1fr 1fr;
|
|
|
|
grid-gap: $gp / 4;
|
|
|
|
|
|
|
|
.placeholder {
|
|
|
|
margin: 0;
|
|
|
|
padding: 0;
|
|
|
|
}
|
|
|
|
}
|
2019-01-17 06:21:41 +00:00
|
|
|
}
|
2019-01-11 20:20:21 +00:00
|
|
|
|
2019-01-17 06:21:41 +00:00
|
|
|
.dark .list {
|
|
|
|
background: $color-dark-gray;
|
|
|
|
}
|
2019-01-11 20:20:21 +00:00
|
|
|
|
2019-01-17 06:21:41 +00:00
|
|
|
.list-header {
|
|
|
|
background: $color-dark-gray;
|
|
|
|
height: $list-header-height;
|
|
|
|
position: absolute;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.games {
|
|
|
|
margin-top: $list-header-height;
|
2019-04-19 16:52:45 +00:00
|
|
|
display: grid;
|
|
|
|
grid-gap: $gp / 2 ;
|
2019-01-17 06:21:41 +00:00
|
|
|
width: 100%;
|
|
|
|
padding: $gp / 2;
|
|
|
|
}
|
2019-01-11 20:20:21 +00:00
|
|
|
</style>
|