aboutsummaryrefslogtreecommitdiff
path: root/public/javascripts/main.js
blob: 0d125cb74d98a3d1a7b01c5476e522281c6ede93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require('./featureDetect').check()
require('./zoom')

const frontpage = require('./frontpage')
const search = require('./search')
const schedule = require('./schedule')
const weekSelector = require('./weekSelector')
const favorite = require('./favorite')
const scrollSnap = require('./scrollSnap')
const analytics = require('./analytics')
const url = require('./url')

const state = {}

window.state = state

frontpage.show()
weekSelector.updateCurrentWeek()
scrollSnap.startListening()

if (url.hasSelectedUser()) {
  state.selectedUser = url.getSelectedUser()

  favorite.update(state.selectedUser)
  url.update(state.selectedUser)
  analytics.send.search(state.selectedUser)

  schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
} else if (favorite.get() != null) {
  state.selectedUser = favorite.get()

  favorite.update(state.selectedUser)
  url.push(state.selectedUser, false)
  url.update(state.selectedUser)
  analytics.send.search(state.selectedUser, true)

  schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
} else {
  search.focus()
}

search.on('search', function (selectedUser) {
  state.selectedUser = selectedUser

  favorite.update(state.selectedUser)
  url.push(state.selectedUser)
  url.update(state.selectedUser)
  analytics.send.search(state.selectedUser)

  schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
})

url.on('update', function (selectedUser) {
  state.selectedUser = selectedUser

  favorite.update(state.selectedUser)
  url.update(state.selectedUser)

  schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
})

weekSelector.on('weekChanged', function (newWeek) {
  analytics.send.search(state.selectedUser)
  schedule.viewItem(newWeek, state.selectedUser)
})

favorite.on('click', function () {
  favorite.toggle(state.selectedUser)
})

document.body.style.opacity = 1