Skip to content

Commit f855433

Browse files
committed
add: public pages
1 parent dbd2b55 commit f855433

File tree

5 files changed

+107
-1
lines changed

5 files changed

+107
-1
lines changed

nuxt.config.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ export default {
3636
plugins: [
3737
{ src: './plugins/vue-carousel.js', mode: 'client' },
3838
{ src: './plugins/ga.js', mode: 'client' },
39-
{ src: './plugins/axios.js' }
39+
{ src: './plugins/axios.js' },
40+
{ src: './plugins/jsonapi-datastore.js' }
4041
],
4142
/*
4243
** Nuxt.js dev-modules

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
"@nuxtjs/axios": "^5.3.6",
1616
"@nuxtjs/pwa": "^3.0.0-0",
1717
"cookie-universal-nuxt": "^2.1.3",
18+
"jsonapi-datastore": "^0.4.0-beta",
19+
"moment": "^2.24.0",
1820
"nuxt": "^2.0.0",
1921
"vue-carousel": "^0.18.0"
2022
},

pages/contests/_id.vue

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
<template>
2+
<div class="container">
3+
<img
4+
:src="contest.image"
5+
alt="Cover Photo"
6+
class="w-100"
7+
>
8+
<div class="border-card p-5 bg-black white br-none">
9+
<div class="row align-items-center justify-content-between">
10+
<div class="row no-gutters col-md-8 col-12 align-items-center">
11+
<div class="col-md-4 col-12 pr-2">
12+
<h3>{{ contest.name }}</h3>
13+
</div>
14+
<div class="col-12 col-md-8 my-lg-0 my-4">
15+
<ul class="divided-list my-0">
16+
<li class="pr-4">
17+
<div class="list-heading font-md extra-bold mb-2 orange">
18+
{{ contest.stats['content-count'] }}
19+
</div>
20+
<div class="list-data font-mds">
21+
Challenges
22+
</div>
23+
</li>
24+
<li class="px-4">
25+
<div class="list-heading font-md extra-bold mb-2 orange">
26+
{{ startTime }}
27+
</div>
28+
<div class="list-data font-mds">
29+
Starts
30+
</div>
31+
</li>
32+
<li class="pl-4">
33+
<div class="list-heading font-md extra-bold mb-2 orange">
34+
{{ endTime }}
35+
</div>
36+
<div class="list-data font-mds">
37+
Ends
38+
</div>
39+
</li>
40+
</ul>
41+
</div>
42+
</div>
43+
<div>
44+
<button class="button-solid button-orange font-sm extra-bold my-3">
45+
Start Challenge
46+
</button>
47+
</div>
48+
</div>
49+
</div>
50+
<div class="font-xs my-5">
51+
<div class="bold">
52+
Instructions
53+
</div>
54+
<p>{{ contest.description }}</p>
55+
</div>
56+
</div>
57+
</template>
58+
<script>
59+
import moment from 'moment';
60+
61+
export default {
62+
async asyncData({ params, $axios, app, redirect }) {
63+
const res = await $axios.get(`/contests/${params.id}/details`)
64+
const contest = app.$jsonApiStore.sync(res.data)
65+
66+
if (!contest['public-page']) {
67+
return redirect(`/app/contests/${params.id}`)
68+
}
69+
70+
return {
71+
contest
72+
}
73+
},
74+
data: () => ({
75+
contest: {}
76+
}),
77+
computed: {
78+
startTime() {
79+
return moment(this.contest && this.contest['start-time']).format('D MMM h:mm A')
80+
},
81+
endTime() {
82+
return moment(this.contest && this.contest['end-time']).format('D MMM h:mm A')
83+
}
84+
}
85+
}
86+
</script>

plugins/jsonapi-datastore.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { JsonApiDataStore } from 'jsonapi-datastore'
2+
3+
// eslint-disable-next-line
4+
export default ({ app }, inject) => {
5+
const store = new JsonApiDataStore()
6+
inject('jsonApiStore', store)
7+
}

yarn.lock

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4773,6 +4773,11 @@ json5@^2.1.2:
47734773
dependencies:
47744774
minimist "^1.2.5"
47754775

4776+
jsonapi-datastore@^0.4.0-beta:
4777+
version "0.4.0-beta"
4778+
resolved "https://registry.yarnpkg.com/jsonapi-datastore/-/jsonapi-datastore-0.4.0-beta.tgz#b499fce924d45e2bc3c6178681520063e2361f10"
4779+
integrity sha1-tJn86STUXivDxheGgVIAY+I2HxA=
4780+
47764781
jsonfile@^4.0.0:
47774782
version "4.0.0"
47784783
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -5292,6 +5297,11 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1:
52925297
dependencies:
52935298
minimist "^1.2.5"
52945299

5300+
moment@^2.24.0:
5301+
version "2.24.0"
5302+
resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b"
5303+
integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==
5304+
52955305
moo-server@*, moo-server@1.3.x:
52965306
version "1.3.0"
52975307
resolved "https://registry.yarnpkg.com/moo-server/-/moo-server-1.3.0.tgz#5dc79569565a10d6efed5439491e69d2392e58f1"

0 commit comments

Comments
 (0)