Skip to content

Commit

Permalink
added theme switcher to app
Browse files Browse the repository at this point in the history
  • Loading branch information
technbuzz committed Jul 18, 2022
1 parent ee37f19 commit b774d4c
Show file tree
Hide file tree
Showing 7 changed files with 193 additions and 15 deletions.
2 changes: 1 addition & 1 deletion apps/admin/src/app/home/dashboard/dashboard.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<mat-icon>menu</mat-icon>
</button>

<span>{{ title | async }}</span>
<span *ngIf="title$ | async as title">{{ title }}</span>

<span class="spacer"></span>

Expand Down
19 changes: 9 additions & 10 deletions apps/admin/src/app/home/dashboard/dashboard.component.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@
import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';
import { AfterContentInit, Component, OnInit, ViewChild } from '@angular/core';
import { Auth } from "@angular/fire/auth";
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
import { MatDrawer } from '@angular/material/sidenav';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { EventService } from '../../shared/events.service';
import { filter, map } from 'rxjs/operators';
import { GeneralService } from '../../shared/general.service';
import { BreadcrumbsService } from '../../shared/breadcrumbs.service';
import { GeneralService } from '../../shared/general.service';


@Component({
selector: 'kha-dashboard',
templateUrl: './dashboard.component.html',
styleUrls: ['./dashboard.component.scss']
})
export class DashboardComponent implements OnInit {
export class DashboardComponent implements OnInit, AfterContentInit{

@ViewChild(MatDrawer, {static: true}) drawer!: MatDrawer;

querying$ = this.gs.querying;

title: Observable<string>;
title$!: Observable<string>;
crumbs: any;

constructor(
Expand All @@ -37,15 +36,15 @@ export class DashboardComponent implements OnInit {
this.drawer.close()
})

this.title = gs.title;
}

ngAfterContentInit(): void {
this.title$ = this.gs.title;
}

ngOnInit() {
this.breadcrumbsService.breadcrumbs$.subscribe(x => {
this.crumbs = x;
});


}

async logout() {
Expand Down
2 changes: 1 addition & 1 deletion apps/admin/src/app/shared/breadcrumbs.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export class BreadcrumbsService {

const crumb: IBreadcrumb = {
// label: route.routeConfig?.data.title || path,
label: 'needs fixing',
label: route.routeConfig?.data ? route.routeConfig.data['title'] : path,
path: path,
};

Expand Down
12 changes: 11 additions & 1 deletion apps/kharchay/src/app/settings/settings.page.html
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,20 @@
(ionChange)="updateTextMode()"
></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Dark Theme</ion-label>
<ion-toggle
checked="false"
(ionChange)="updateTheme($event)"
></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Login Status</ion-label>
<!-- <ion-button *ngIf="loggedIn; else loggedOut" slot="end" (click)="logout()" -->
<ion-button *ngIf="(loggedIn$ | async); else loggedOut" slot="end" (click)="logout()"
<ion-button
*ngIf="(loggedIn$ | async); else loggedOut"
slot="end"
(click)="logout()"
>Logout</ion-button
>

Expand Down
16 changes: 14 additions & 2 deletions apps/kharchay/src/app/settings/settings.page.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Component, OnInit, Optional } from '@angular/core';
import { Component, Inject, OnInit, Optional, Renderer2 } from '@angular/core';
import { DOCUMENT } from '@angular/common'
import { SettingsService } from '../services/settings.service';
import { AlertController, LoadingController, ToastController } from '@ionic/angular';

Expand Down Expand Up @@ -26,7 +27,9 @@ export class SettingsPage implements OnInit {
public alertController: AlertController,
private authService: AuthService,
private loadingController: LoadingController,
private toastController: ToastController
private toastController: ToastController,
@Inject(DOCUMENT) private document: Document,
private renderer: Renderer2
) {}

ngOnInit() {
Expand Down Expand Up @@ -109,6 +112,15 @@ export class SettingsPage implements OnInit {

}

updateTheme(event: any) {
const checked = event.detail.checked
if(checked) {
this.renderer.addClass(this.document.body, 'dark')
} else {
this.renderer.removeClass(this.document.body, 'dark')
}
}

async presentToast() {
const toast = await this.toastController.create({
message: 'Something Not Right 😓 Please try again',
Expand Down
1 change: 1 addition & 0 deletions apps/kharchay/src/global.scss
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@
@import "~@ionic/angular/css/text-alignment.css";
@import "~@ionic/angular/css/text-transformation.css";
@import "~@ionic/angular/css/flex-utils.css";
@import "./theme/dark.scss"
156 changes: 156 additions & 0 deletions apps/kharchay/src/theme/dark.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
/*
* Dark Colors
* -------------------------------------------
*/

body.dark {
--ion-color-primary: #428cff;
--ion-color-primary-rgb: 66, 140, 255;
--ion-color-primary-contrast: #ffffff;
--ion-color-primary-contrast-rgb: 255, 255, 255;
--ion-color-primary-shade: #3a7be0;
--ion-color-primary-tint: #5598ff;

--ion-color-secondary: #50c8ff;
--ion-color-secondary-rgb: 80, 200, 255;
--ion-color-secondary-contrast: #ffffff;
--ion-color-secondary-contrast-rgb: 255, 255, 255;
--ion-color-secondary-shade: #46b0e0;
--ion-color-secondary-tint: #62ceff;

--ion-color-tertiary: #6a64ff;
--ion-color-tertiary-rgb: 106, 100, 255;
--ion-color-tertiary-contrast: #ffffff;
--ion-color-tertiary-contrast-rgb: 255, 255, 255;
--ion-color-tertiary-shade: #5d58e0;
--ion-color-tertiary-tint: #7974ff;

--ion-color-success: #2fdf75;
--ion-color-success-rgb: 47, 223, 117;
--ion-color-success-contrast: #000000;
--ion-color-success-contrast-rgb: 0, 0, 0;
--ion-color-success-shade: #29c467;
--ion-color-success-tint: #44e283;

--ion-color-warning: #ffd534;
--ion-color-warning-rgb: 255, 213, 52;
--ion-color-warning-contrast: #000000;
--ion-color-warning-contrast-rgb: 0, 0, 0;
--ion-color-warning-shade: #e0bb2e;
--ion-color-warning-tint: #ffd948;

--ion-color-danger: #ff4961;
--ion-color-danger-rgb: 255, 73, 97;
--ion-color-danger-contrast: #ffffff;
--ion-color-danger-contrast-rgb: 255, 255, 255;
--ion-color-danger-shade: #e04055;
--ion-color-danger-tint: #ff5b71;

--ion-color-dark: #f4f5f8;
--ion-color-dark-rgb: 244, 245, 248;
--ion-color-dark-contrast: #000000;
--ion-color-dark-contrast-rgb: 0, 0, 0;
--ion-color-dark-shade: #d7d8da;
--ion-color-dark-tint: #f5f6f9;

--ion-color-medium: #989aa2;
--ion-color-medium-rgb: 152, 154, 162;
--ion-color-medium-contrast: #000000;
--ion-color-medium-contrast-rgb: 0, 0, 0;
--ion-color-medium-shade: #86888f;
--ion-color-medium-tint: #a2a4ab;

--ion-color-light: #222428;
--ion-color-light-rgb: 34, 36, 40;
--ion-color-light-contrast: #ffffff;
--ion-color-light-contrast-rgb: 255, 255, 255;
--ion-color-light-shade: #1e2023;
--ion-color-light-tint: #383a3e;
}

/*
* iOS Dark Theme
* -------------------------------------------
*/

.ios body.dark {
--ion-background-color: #000000;
--ion-background-color-rgb: 0, 0, 0;

--ion-text-color: #ffffff;
--ion-text-color-rgb: 255, 255, 255;

--ion-color-step-50: #0d0d0d;
--ion-color-step-100: #1a1a1a;
--ion-color-step-150: #262626;
--ion-color-step-200: #333333;
--ion-color-step-250: #404040;
--ion-color-step-300: #4d4d4d;
--ion-color-step-350: #595959;
--ion-color-step-400: #666666;
--ion-color-step-450: #737373;
--ion-color-step-500: #808080;
--ion-color-step-550: #8c8c8c;
--ion-color-step-600: #999999;
--ion-color-step-650: #a6a6a6;
--ion-color-step-700: #b3b3b3;
--ion-color-step-750: #bfbfbf;
--ion-color-step-800: #cccccc;
--ion-color-step-850: #d9d9d9;
--ion-color-step-900: #e6e6e6;
--ion-color-step-950: #f2f2f2;

--ion-item-background: #000000;

--ion-card-background: #1c1c1d;
}

.ios body.dark ion-modal {
--ion-background-color: var(--ion-color-step-100);
--ion-toolbar-background: var(--ion-color-step-150);
--ion-toolbar-border-color: var(--ion-color-step-250);
--ion-item-background: var(--ion-color-step-150);
}

/*
* Material Design Dark Theme
* -------------------------------------------
*/

.md body.dark {
--ion-background-color: #121212;
--ion-background-color-rgb: 18, 18, 18;

--ion-text-color: #ffffff;
--ion-text-color-rgb: 255, 255, 255;

--ion-border-color: #222222;

--ion-color-step-50: #1e1e1e;
--ion-color-step-100: #2a2a2a;
--ion-color-step-150: #363636;
--ion-color-step-200: #414141;
--ion-color-step-250: #4d4d4d;
--ion-color-step-300: #595959;
--ion-color-step-350: #656565;
--ion-color-step-400: #717171;
--ion-color-step-450: #7d7d7d;
--ion-color-step-500: #898989;
--ion-color-step-550: #949494;
--ion-color-step-600: #a0a0a0;
--ion-color-step-650: #acacac;
--ion-color-step-700: #b8b8b8;
--ion-color-step-750: #c4c4c4;
--ion-color-step-800: #d0d0d0;
--ion-color-step-850: #dbdbdb;
--ion-color-step-900: #e7e7e7;
--ion-color-step-950: #f3f3f3;

--ion-item-background: #1e1e1e;

--ion-toolbar-background: #1f1f1f;

--ion-tab-bar-background: #1f1f1f;

--ion-card-background: #1e1e1e;
}

0 comments on commit b774d4c

Please sign in to comment.