Skip to content

Commit c7cb915

Browse files
authored
Frontend - Leaderboard #1046
2 parents 88835eb + 3006cde commit c7cb915

File tree

70 files changed

+1716
-60
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1716
-60
lines changed

frontend/angular.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@
4848
],
4949
"sourceMap": true,
5050
"styles": [
51-
"src/styles.scss"
51+
"src/styles.scss",
52+
"node_modules/aos/dist/aos.css"
5253
],
5354
"stylePreprocessorOptions": {
5455
"includePaths": [
@@ -58,7 +59,9 @@
5859
"src/assets/images"
5960
]
6061
},
61-
"scripts": []
62+
"scripts": [
63+
"node_modules/aos/dist/aos.js"
64+
]
6265
},
6366
"configurations": {
6467
"production": {

frontend/functions/package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package-lock.json

Lines changed: 27 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "frontend",
3-
"version": "1.0.79",
3+
"version": "1.0.95",
44
"scripts": {
55
"install:deps": "npm install",
66
"start": "npm install && ng serve --configuration local --open",
@@ -20,7 +20,8 @@
2020
"prerender": "ng run frontend:prerender",
2121
"sentry:sourcemaps": "sentry-cli sourcemaps inject --org openmina-uv --project openmina ./dist/frontend/browser && sentry-cli sourcemaps upload --org openmina-uv --project openmina ./dist/frontend/browser",
2222
"copy-env": "cp dist/frontend/browser/assets/environments/webnode.js dist/frontend/browser/assets/environments/env.js",
23-
"deploy": "npm run prebuild && npm run build:prod && npm run copy-env && firebase deploy"
23+
"deploy": "npm run prebuild && npm run build:prod && npm run copy-env && firebase deploy",
24+
"deploy:leaderboard": "npm run prebuild && npm run build:prod && cp dist/frontend/browser/assets/environments/leaderboard.js dist/frontend/browser/assets/environments/env.js && firebase deploy"
2425
},
2526
"private": true,
2627
"dependencies": {
@@ -47,6 +48,7 @@
4748
"@sentry/angular": "^8.35.0",
4849
"@sentry/cli": "^2.38.2",
4950
"@sentry/tracing": "^7.114.0",
51+
"aos": "^2.3.4",
5052
"base-x": "^5.0.0",
5153
"bs58check": "^4.0.0",
5254
"buffer": "^6.0.3",

frontend/src/app/app.component.html

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
@if (showLandingPage$ | async) {
2-
<mina-web-node-landing-page (goToNode)="goToWebNode()"
3-
(stopRequests)="clearNodeUpdateSubscription()"></mina-web-node-landing-page>
2+
<mina-leaderboard-landing-page></mina-leaderboard-landing-page>
3+
<!-- <mina-web-node-landing-page (goToNode)="goToWebNode()"-->
4+
<!-- (stopRequests)="clearNodeUpdateSubscription()"></mina-web-node-landing-page>-->
45
} @else if (showLoadingWebNodePage$ | async) {
56
<router-outlet></router-outlet>
7+
} @else if (showLeaderboardPage$ | async) {
8+
<router-outlet></router-outlet>
69
} @else if (loaded) {
710
<mat-sidenav-container [hasBackdrop]="false"
811
class="w-100 h-100"

frontend/src/app/app.component.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import { Router } from '@angular/router';
1111
import { Routes } from '@shared/enums/routes.enum';
1212
import { WebNodeService } from '@core/services/web-node.service';
1313

14+
declare var AOS: any;
15+
1416
@Component({
1517
selector: 'app-root',
1618
templateUrl: './app.component.html',
@@ -23,6 +25,7 @@ export class AppComponent extends StoreDispatcher implements OnInit {
2325
readonly menu$: Observable<AppMenu> = this.select$(AppSelectors.menu);
2426
readonly showLandingPage$: Observable<boolean> = this.select$(getMergedRoute).pipe(filter(Boolean), map((route: MergedRoute) => route.url === '/' || route.url.startsWith('/?')));
2527
readonly showLoadingWebNodePage$: Observable<boolean> = this.select$(getMergedRoute).pipe(filter(Boolean), map((route: MergedRoute) => route.url.startsWith(`/${Routes.LOADING_WEB_NODE}`)));
28+
readonly showLeaderboardPage$: Observable<boolean> = this.select$(getMergedRoute).pipe(filter(Boolean), map((route: MergedRoute) => route.url.startsWith(`/${Routes.LEADERBOARD}`)));
2629
subMenusLength: number = 0;
2730
hideToolbar: boolean = CONFIG.hideToolbar;
2831
loaded: boolean;
@@ -33,6 +36,8 @@ export class AppComponent extends StoreDispatcher implements OnInit {
3336
constructor(private breakpointObserver: BreakpointObserver,
3437
private router: Router,
3538
private webNodeService: WebNodeService) {
39+
AOS.init();
40+
3641
super();
3742
safelyExecuteInBrowser(() => {
3843
if (any(window).Cypress) {
@@ -55,7 +60,7 @@ export class AppComponent extends StoreDispatcher implements OnInit {
5560
() => this.initAppFunctionalities(),
5661
filter(Boolean),
5762
take(1),
58-
filter((route: MergedRoute) => route.url !== '/' && !route.url.startsWith('/?')),
63+
filter((route: MergedRoute) => route.url !== '/' && !route.url.startsWith('/?') && !route.url.startsWith('/leaderboard')),
5964
);
6065
this.select(
6166
getMergedRoute,

frontend/src/app/app.module.ts

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { getPerformance, providePerformance } from '@angular/fire/performance';
4242
import { BlockProductionPillComponent } from '@app/layout/block-production-pill/block-production-pill.component';
4343
import { MenuTabsComponent } from '@app/layout/menu-tabs/menu-tabs.component';
4444
import { getFirestore, provideFirestore } from '@angular/fire/firestore';
45+
import { LeaderboardModule } from '@leaderboard/leaderboard.module';
4546

4647
registerLocaleData(localeFr, 'fr');
4748
registerLocaleData(localeEn, 'en');
@@ -164,6 +165,7 @@ export class AppGlobalErrorhandler implements ErrorHandler {
164165
WebNodeLandingPageComponent,
165166
BlockProductionPillComponent,
166167
MenuTabsComponent,
168+
LeaderboardModule,
167169
],
168170
providers: [
169171
THEME_PROVIDER,
@@ -179,15 +181,7 @@ export class AppGlobalErrorhandler implements ErrorHandler {
179181
},
180182
provideClientHydration(),
181183
provideHttpClient(withFetch()),
182-
provideFirebaseApp(() => initializeApp({
183-
'projectId': 'openminawebnode',
184-
'appId': '1:120031499786:web:9af56c50ebce25c619f1f3',
185-
'storageBucket': 'openminawebnode.firebasestorage.app',
186-
'apiKey': 'AIzaSyBreMkb5-8ANb5zL6yWKgRAk9owbDS1g9s',
187-
'authDomain': 'openminawebnode.firebaseapp.com',
188-
'messagingSenderId': '120031499786',
189-
'measurementId': 'G-V0ZC81T9RQ',
190-
})),
184+
provideFirebaseApp(() => initializeApp(CONFIG.globalConfig.firebase)),
191185
provideAnalytics(() => getAnalytics()),
192186
ScreenTrackingService,
193187
// provideAppCheck(() => {

frontend/src/app/app.routing.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ function generateRoutes(): Routes {
7676
loadChildren: () => import('@web-node/web-node.module').then(m => m.WebNodeModule),
7777
title: WEBNODE_TITLE,
7878
},
79+
{
80+
path: '',
81+
loadChildren: () => import('@leaderboard/leaderboard.module').then(m => m.LeaderboardModule),
82+
},
7983
];
8084
if (CONFIG.showWebNodeLandingPage) {
8185
routes.push({

frontend/src/app/app.service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ export class AppService {
6262
details[key] = null;
6363
}
6464
});
65-
this.firestoreService.addHeartbeat(details);
65+
// this.firestoreService.addHeartbeat(details);
6666
}),
6767
);
6868
}

frontend/src/app/app.setup.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ import { benchmarksReducer } from '@benchmarks/benchmarks.reducer';
3838
import { fuzzingReducer } from '@fuzzing/fuzzing.reducer';
3939
import { FuzzingState } from '@fuzzing/fuzzing.state';
4040
import { FuzzingAction } from '@fuzzing/fuzzing.actions';
41+
import { LeaderboardState } from '@leaderboard/leaderboard.state';
42+
import { leaderboardReducer } from '@leaderboard/leaderboard.reducer';
4143

4244
export interface MinaState {
4345
[APP_KEY]: AppState;
@@ -53,6 +55,7 @@ export interface MinaState {
5355
snarks: SnarksState;
5456
benchmarks: BenchmarksState;
5557
fuzzing: FuzzingState;
58+
leaderboard: LeaderboardState;
5659
}
5760

5861
type MinaAction =
@@ -80,6 +83,7 @@ export const reducers: ActionReducerMap<MinaState, MinaAction> = {
8083
snarks: snarksReducer,
8184
benchmarks: benchmarksReducer,
8285
fuzzing: fuzzingReducer,
86+
leaderboard: leaderboardReducer,
8387
};
8488

8589
export const metaReducers: MetaReducer<MinaState, MinaAction>[] = [];

0 commit comments

Comments
 (0)