|
146 | 146 | </div> |
147 | 147 | </!--div--> |
148 | 148 | <ng-container *ngIf="topics$ | async as topics"> |
149 | | - <ng-container *ngIf="!topics.length"> |
150 | | - <div class="no_engagements" *ngIf="showNoEngagements"> |
| 149 | + <ng-container *ngIf="topics.length > 0"> |
| 150 | + <div class="no_engagements" *ngIf="showNoEngagements()"> |
151 | 151 | <div class="illustration"> |
152 | 152 | <svg width="96" height="90" viewBox="0 0 96 90" fill="none" xmlns="http://www.w3.org/2000/svg"> |
153 | 153 | <path d="M60.4741 78.8158L33.9747 81.5569L34.5735 92.5006L60.4741 92.5006L60.4741 78.8158Z" |
|
186 | 186 | <div translate="VIEWS.DASHBOARD.HAVENT_ENGAGED_TOPICS_DESCRIPTION"></div> |
187 | 187 | </div> |
188 | 188 | <div class="button_wrap"> |
189 | | - <div id="create_menu_wrap" [ngClass]="{'hidden': !showCreate}"> |
| 189 | + <div id="create_menu_wrap" [ngClass]="{'hidden': !showCreate()}"> |
190 | 190 | <div id="create_menu"> |
191 | 191 | <div class="create_menu_item" [routerLink]="['/', translate.currentLang, 'topics', 'ideation', 'create']" |
192 | 192 | routerLinkActive="active"> |
|
263 | 263 | </div> |
264 | 264 | </div> |
265 | 265 | </div> |
266 | | - <div id="close_create" (click)="showCreate = false;"></div> |
| 266 | + <div id="close_create" (click)="showCreate.set(false)"></div> |
267 | 267 | </div> |
268 | | - <button class="btn_medium_submit" (click)="showCreateMenu()" [ngClass]="{active: showCreate}"><svg width="25" |
| 268 | + <button class="btn_medium_submit" (click)="showCreateMenu()" [ngClass]="{active: showCreate()}"><svg width="25" |
269 | 269 | height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> |
270 | 270 | <path |
271 | 271 | d="M12.5 20C11.9711 20 11.5423 19.5712 11.5423 19.0423L11.5423 12.9577L5.45775 12.9577C4.9288 12.9577 4.5 12.5289 4.5 12C4.5 11.4711 4.9288 11.0423 5.45775 11.0423H11.5423V4.95775C11.5423 4.4288 11.9711 4 12.5 4C13.0289 4 13.4577 4.4288 13.4577 4.95775L13.4577 11.0423L19.5423 11.0423C20.0712 11.0423 20.5 11.4711 20.5 12C20.5 12.5289 20.0712 12.9577 19.5423 12.9577H13.4577V19.0423C13.4577 19.5712 13.0289 20 12.5 20Z" |
|
300 | 300 | translate="VIEWS.DASHBOARD.PUBLIC_TOPICS_LNK_VIEW_ALL"></button> |
301 | 301 | </div> |
302 | 302 | </ng-container> |
303 | | - <ng-container *ngIf="topics.length"> |
| 303 | + <ng-container *ngIf="topics.length > 0"> |
304 | 304 | <div class="dashboard_section items_list_section" |
305 | 305 | [TourItem]="{tourid: 'dashboard', index: 5, position: 'bottom'}"> |
306 | 306 | <div class="section_header"> |
|
322 | 322 | </ng-container> |
323 | 323 | </ng-container> |
324 | 324 | <ng-container *ngIf="groups$ | async as groups"> |
325 | | - <ng-container *ngIf="!groups.length"> |
326 | | - <ng-container *ngIf="publicgroups$ | async as groups;"> |
| 325 | + <ng-container *ngIf="groups.length > 0"> |
| 326 | + <ng-container *ngIf="publicgroups$ | async as groups;" defer> |
327 | 327 | <div class="dashboard_section items_list_section" |
328 | 328 | [TourItem]="{tourid: 'dashboard', index: 6, position: 'bottom'}"> |
329 | 329 | <div class="section_header"> |
|
345 | 345 | </div> |
346 | 346 | </ng-container> |
347 | 347 | </ng-container> |
348 | | - <ng-container *ngIf="groups.length"> |
| 348 | + <ng-container *ngIf="groups.length > 0"> |
349 | 349 | <div class="dashboard_section items_list_section" |
350 | 350 | [TourItem]="{tourid: 'dashboard', index: 6, position: 'bottom'}"> |
351 | 351 | <div class="section_header"> |
|
368 | 368 | </div> |
369 | 369 | </ng-container> |
370 | 370 | </ng-container> |
371 | | - <div class="dashboard_section_row news_section"> |
| 371 | + <div class="dashboard_section_row news_section" *ngIf="news$ | async as news; defer"> |
372 | 372 | <div class="section_header mobile"> |
373 | 373 | <div class="small_heading" translate="VIEWS.DASHBOARD.NEWS_HEADER"></div> |
374 | 374 | </div> |
|
383 | 383 | </a> |
384 | 384 | </div> |
385 | 385 | <div class="news_items_wrap"> |
386 | | - |
387 | | - <ng-container *ngIf="news$ | async as news"> |
388 | | - |
389 | 386 | <a [href]="news[i].link" target="_blank" class="news_item" *ngFor="let i of [0,1,2,3]"> |
390 | | - <div class="news_image" *ngIf="news[i].imageUrl"> |
391 | | - <img [src]="news[i].imageUrl" /> |
| 387 | + <div class="news_image" *ngIf="news[i].imageUrl"> |
| 388 | + <img [src]="news[i].imageUrl" |
| 389 | + [alt]="news[i].title || 'News image'" |
| 390 | + loading="lazy" |
| 391 | + decoding="async" |
| 392 | + [style.width]="'100%'" |
| 393 | + [style.height]="'auto'" |
| 394 | + [style.object-fit]="'cover'" /> |
392 | 395 | </div> |
393 | 396 | <div class="news_text"> |
394 | | - <div class="date" [innerHtml]="news[i].pubDate | date: 'YYYY-MM-dd HH:mm'"></div> |
| 397 | + <div class="date" [innerHtml]="news[i].pubDate | date: 'y-MM-dd HH:mm'"></div> |
395 | 398 | <a class="bold" [innerHtml]="news[i].title"></a> |
396 | 399 | </div> |
397 | 400 | </a> |
398 | | - </ng-container> |
399 | 401 | </div> |
400 | 402 | </div> |
401 | 403 |
|
402 | 404 | <a class="btn_medium_submit mobile_show" href="https://citizenos.com/news" target="_blank" |
403 | 405 | translate="VIEWS.DASHBOARD.NEWS_LNK_VIEW_ALL"></a> |
404 | 406 |
|
405 | | - <div id="help_us"> |
| 407 | + <div id="help_us" *ngIf="true; defer"> |
406 | 408 | <div id="title" translate="VIEWS.DASHBOARD.HELP_US_HEADER"></div> |
407 | 409 | <div class="help_items_wrap"> |
408 | 410 | <div class="help_item"> |
|
483 | 485 | </div> |
484 | 486 | </div> |
485 | 487 | </div> |
486 | | - <ng-container *ngIf="topics$ | async as topics"> |
487 | | - <div class="dashboard_section items_list_section" *ngIf="topics.length" |
| 488 | + <ng-container *ngIf="topics$ | async as topics" defer> |
| 489 | + <div class="dashboard_section items_list_section" *ngIf="topics.length > 0" |
488 | 490 | [TourItem]="{tourid: 'dashboard', index: 5, position: 'bottom'}"> |
489 | 491 | <div class="section_header"> |
490 | 492 | <div class="small_heading" translate="VIEWS.DASHBOARD.PUBLIC_TOPICS_HEADER"></div><a class="view_more_link" |
|
506 | 508 | </div> |
507 | 509 | </ng-container> |
508 | 510 | <ng-container *ngIf="groups$ | async as mygroups"> |
509 | | - <ng-container *ngIf="mygroups.length && (publicgroups$ | async) as groups;"> |
| 511 | + <ng-container *ngIf="mygroups.length > 0 && (publicgroups$ | async) as groups;"> |
510 | 512 | <div class="dashboard_section items_list_section" |
511 | 513 | [TourItem]="{tourid: 'dashboard', index: 6, position: 'bottom'}"> |
512 | 514 | <div class="section_header"> |
|
543 | 545 | </div> |
544 | 546 | </div> |
545 | 547 | <div id="subscribe_illustration"> |
546 | | - <ng-container *ngIf="wWidth <= 1024 && wWidth > 560"> |
| 548 | + <ng-container *ngIf="wWidth() <= 1024 && wWidth() > 560"> |
547 | 549 | <svg class="tablet_show" width="330" height="255" viewBox="0 0 330 255" fill="none" |
548 | 550 | xmlns="http://www.w3.org/2000/svg"> |
549 | 551 | <path d="M311.626 223.551V241.5H209.977L236.34 114.922H269.994H311.626V219.189" fill="#D7E9F8" /> |
|
697 | 699 | fill="#2C3B47" /> |
698 | 700 | </svg> |
699 | 701 | </ng-container> |
700 | | - <ng-container *ngIf="wWidth > 1024 || wWidth <= 560"> |
| 702 | + <ng-container *ngIf="wWidth() > 1024 || wWidth() <= 560"> |
701 | 703 |
|
702 | 704 | <svg width="411" height="244" viewBox="0 0 411 244" fill="none" xmlns="http://www.w3.org/2000/svg"> |
703 | 705 | <path d="M377.924 251.604V271.806H263.465L293.15 129.344H331.045H377.924V246.694" fill="#D7E9F8" /> |
|
0 commit comments