Skip to content

Commit 4fdf289

Browse files
committed
Homepage redesign
1 parent ff95d91 commit 4fdf289

3 files changed

Lines changed: 192 additions & 173 deletions

File tree

api/src/functions/get-streak.js

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,53 @@ export default async ({ isWins, load, playerId }) => {
2424
.where({ playerId })
2525
]
2626
)
27+
.whereNotExists(query =>
28+
query
29+
.select()
30+
.from('series as os')
31+
.whereRaw(
32+
isWins
33+
? `os."winningSeriesTeamId" = ??`
34+
: `os."losingSeriesTeamId" = ??`,
35+
[
36+
query =>
37+
query
38+
.select('seriesTeams.id')
39+
.from('seriesTeamMembers')
40+
.join(
41+
'seriesTeams',
42+
'seriesTeams.id',
43+
'seriesTeamMembers.seriesTeamId'
44+
)
45+
.whereColumn('seriesTeams.seriesId', 'os.id')
46+
.where({ playerId })
47+
]
48+
)
49+
.where('os.seasonId', currentSeason.id)
50+
.whereColumn('os.completedAt', '<', 'series.completedAt')
51+
)
2752
.where({ seasonId: currentSeason.id })
28-
.orderBy('completedAt', 'desc')
53+
.orderBy('completedAt', 'asc')
2954
.limit(1);
3055

56+
if (!last) return 0;
57+
3158
const [{ count: currentStreak }] = await load.tx
32-
.count()
59+
.count('series.id')
3360
.from('series')
34-
.join('seriesTeams', 'seriesTeams.id', 'series.id')
35-
.join(
36-
'seriesTeamMembers',
37-
'seriesTeamMembers.seriesTeamId',
38-
'seriesTeams.id'
61+
.whereExists(query =>
62+
query
63+
.select('seriesTeams.id')
64+
.from('seriesTeamMembers')
65+
.join('seriesTeams', 'seriesTeams.id', 'seriesTeamMembers.seriesTeamId')
66+
.whereColumn('seriesTeams.seriesId', 'series.id')
67+
.where({ playerId })
3968
)
40-
.where({ playerId, seasonId: currentSeason.id })
69+
.where({ seasonId: currentSeason.id })
4170
.where(
4271
'series.completedAt',
4372
'>=',
44-
new Date(last?.completedAt ?? 0).toISOString()
73+
new Date(last.completedAt).toISOString()
4574
);
4675

4776
return currentStreak;

www/src/components/button.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
import clsx from 'clsx';
22

3-
export default ({ onclick, children, className, resetRounding }) => (
3+
export default ({
4+
onclick,
5+
children,
6+
className,
7+
resetRounding,
8+
resetColor
9+
}) => (
410
<button
511
onclick={onclick}
612
className={clsx(
7-
'px-4 py-2 text-white text-center align-middle transition-[all] active:bg-gray-600 active:scale-[0.98] bg-gray-500',
13+
'px-4 py-2 text-white text-center align-middle transition-[all]',
14+
!resetColor && 'active:bg-gray-600 bg-gray-500',
815
!resetRounding && 'rounded-md',
916
className
1017
)}

0 commit comments

Comments
 (0)