MCPcopy Create free account
hub / github.com/codecombat/codecombat / getRenderData

Method getRenderData

app/views/clans/ClanDetailsView.js:128–199  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

126 }
127
128 getRenderData () {
129 let left, needle
130 const context = super.getRenderData()
131 context.campaignLevelProgressions = this.campaignLevelProgressions != null ? this.campaignLevelProgressions : []
132 context.clan = this.clan
133 context.conceptsProgression = this.conceptsProgression != null ? this.conceptsProgression : []
134 if (application.isProduction()) {
135 context.joinClanLink = `https://codecombat.com/clans/${this.clanID}`
136 } else {
137 context.joinClanLink = `http://localhost:3000/clans/${this.clanID}`
138 }
139 context.owner = this.owner
140 context.memberAchievementsMap = this.memberAchievementsMap
141 context.memberLanguageMap = this.memberLanguageMap
142 context.memberLevelStateMap = this.memberLevelMap != null ? this.memberLevelMap : {}
143 context.memberMaxLevelCount = this.memberMaxLevelCount
144 context.memberSort = this.memberSort
145 context.isOwner = this.clan.get('ownerID') === me.id
146 context.isMember = (needle = this.clanID, Array.from(((left = me.get('clans')) != null ? left : [])).includes(needle))
147 context.stats = this.stats
148
149 // Find last campaign level for each user
150 // TODO: why do we do this for every render?
151 const highestUserLevelCountMap = {}
152 const lastUserCampaignLevelMap = {}
153 let maxLastUserCampaignLevel = 0
154 const userConceptsMap = {}
155 if (this.campaigns != null ? this.campaigns.loaded : undefined) {
156 let levelCount = 0
157 for (const campaign of Array.from(this.campaigns.models)) {
158 if (campaign.get('type') === 'hero') {
159 const campaignID = campaign.id
160 let lastLevelIndex = 0
161 const object = campaign.get('levels')
162 for (const levelID in object) {
163 const level = object[levelID]
164 const levelSlug = level.slug
165 for (const member of Array.from((this.members != null ? this.members.models : undefined) != null ? (this.members != null ? this.members.models : undefined) : [])) {
166 if (context.memberLevelStateMap[member.id] != null ? context.memberLevelStateMap[member.id][levelSlug] : undefined) {
167 if (lastUserCampaignLevelMap[member.id] == null) { lastUserCampaignLevelMap[member.id] = {} }
168 if (lastUserCampaignLevelMap[member.id][campaignID] == null) { lastUserCampaignLevelMap[member.id][campaignID] = {} }
169 lastUserCampaignLevelMap[member.id][campaignID] = {
170 levelSlug,
171 index: lastLevelIndex
172 }
173 if (lastLevelIndex > maxLastUserCampaignLevel) { maxLastUserCampaignLevel = lastLevelIndex }
174 if (level.concepts != null) {
175 if (userConceptsMap[member.id] == null) { userConceptsMap[member.id] = {} }
176 for (const concept of Array.from(level.concepts)) {
177 if (userConceptsMap[member.id][concept] === 'complete') { continue }
178 userConceptsMap[member.id][concept] = context.memberLevelStateMap[member.id][levelSlug].state
179 }
180 }
181 highestUserLevelCountMap[member.id] = levelCount
182 }
183 }
184 lastLevelIndex++
185 levelCount++

Callers

nothing calls this directly

Calls 2

sortMembersMethod · 0.95
getMethod · 0.45

Tested by

no test coverage detected