Skip to content
This repository was archived by the owner on Feb 6, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
26faceb
feat(#773): use stencil/store to handle dark mode switcher
peterpeterparker Jun 28, 2020
a80bbe1
feat(#773): use stencil/store to handle dark mode switcher
peterpeterparker Jun 28, 2020
2182c1e
feat(#773): use stencil/store to handle error
peterpeterparker Jun 28, 2020
bd1f774
feat(#773): handle none well formatted date
peterpeterparker Jun 28, 2020
0d964c5
feat(#773): use stencil/store for the feed
peterpeterparker Jun 28, 2020
e83927b
feat(#773): use stencil/store for the busy service
peterpeterparker Jun 29, 2020
9e181e1
feat(#773): use stencil/store for the nav
peterpeterparker Jun 29, 2020
6d8a06d
feat(#773): use stencil/store for the poll
peterpeterparker Jun 29, 2020
722a402
refactor(#773): use export store for theme too
peterpeterparker Jun 29, 2020
5799be9
feat(#773): use vanilla debounce
peterpeterparker Jun 29, 2020
d0ad6ee
feat(#773): use stencil/store for publish progression
peterpeterparker Jun 29, 2020
2d0778e
feat(#773): use vanilla debounce
peterpeterparker Jun 29, 2020
23ce65c
feat(#773): use vanilla debounce
peterpeterparker Jun 29, 2020
b393916
feat(#773): use stencil/store for offline state
peterpeterparker Jun 29, 2020
c45d915
feat(#773): use stencil/store for remote
peterpeterparker Jun 29, 2020
1b90f4d
feat(#773): use stencil/store for authentication
peterpeterparker Jun 29, 2020
f485e84
feat(#773): destroy listener
peterpeterparker Jun 29, 2020
dcd672a
feat(#773): use stencil/store for user
peterpeterparker Jun 30, 2020
92a584f
feat(#773): add loggedIn information to store
peterpeterparker Jun 30, 2020
cdfe81d
feat(#773): use stencil/store for api user
peterpeterparker Jun 30, 2020
2a756f5
feat(#773): remove rxjs interval
peterpeterparker Jun 30, 2020
69bcb5c
feat(#773): use stencil/store in wc remote
peterpeterparker Jun 30, 2020
3426a81
feat(#773): update dependencies
peterpeterparker Jun 30, 2020
5215dff
feat(#773): update remote component
peterpeterparker Jun 30, 2020
66457fc
feat(#773): remote rxjs from studio
peterpeterparker Jun 30, 2020
bb50cd9
feat(#773): use stencil/store for timer
peterpeterparker Jun 30, 2020
e92f018
feat(#773): use stencil/store for theme
peterpeterparker Jun 30, 2020
005e034
feat(#773): use stencil/store for notes
peterpeterparker Jun 30, 2020
c6ea1f6
feat(#773): use stencil/store for remote
peterpeterparker Jun 30, 2020
b58f464
feat(#773): use stencil/store for accelerometer
peterpeterparker Jun 30, 2020
1a19f24
feat(#773): remote rxjs from remote
peterpeterparker Jun 30, 2020
7d9e2d3
feat(#773): remote rxjs from docs
peterpeterparker Jun 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
<a name="1.5.0"></a>

# [1.5.0](https://github.com/deckgo/deckdeckgo/compare/v1.4.0...v1.5.0) (In progress)

### Web Components

- remote: v1.2.0 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/webcomponents/remote/CHANGELOG.md))

<a name="1.4.0"></a>

# [1.4.0](https://github.com/deckgo/deckdeckgo/compare/v1.3.0...v1.4.0) (2020-06-25)
Expand Down
8 changes: 0 additions & 8 deletions docs/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@
"@deckdeckgo/social": "^1.0.1",
"@deckdeckgo/youtube": "^1.1.2",
"@ionic/core": "^5.2.2",
"idb-keyval": "^3.2.0",
"rxjs": "^6.5.5"
"idb-keyval": "^3.2.0"
},
"devDependencies": {
"@deckdeckgo/types": "^1.1.0",
Expand Down
14 changes: 6 additions & 8 deletions remote/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion remote/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@
"date-fns": "^2.14.0",
"idb-keyval": "^3.2.0",
"remarkable": "^2.0.1",
"rxjs": "^6.5.5",
"socket.io-client": "^2.3.0",
"uuid": "^8.2.0"
},
Expand All @@ -56,6 +55,7 @@
"@stencil/core": "^1.15.0",
"@stencil/postcss": "^1.0.1",
"@stencil/sass": "^1.3.2",
"@stencil/store": "^1.3.0",
"@types/socket.io-client": "^1.4.33",
"@types/w3c-generic-sensor": "^1.0.2",
"@types/webrtc": "0.0.26",
Expand Down
21 changes: 2 additions & 19 deletions remote/src/app/app-root.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
import {Build, Component, h, State} from '@stencil/core';

import {Subscription} from 'rxjs';

import {TimerService} from './services/timer/timer.service';
import {AccelerometerService} from './services/accelerometer/accelerometer.service';
import {ThemeService} from './services/theme/theme.service';
Expand All @@ -14,11 +12,8 @@ export class AppRoot {
private timerService: TimerService;
private accelerometerService: AccelerometerService;

private themeSubscription: Subscription;
private themeService: ThemeService;

private domBodyClassList: DOMTokenList = document.body.classList;

@State()
private loading: boolean = true;

Expand All @@ -29,10 +24,6 @@ export class AppRoot {
}

async componentWillLoad() {
this.themeSubscription = this.themeService.watch().subscribe((dark: boolean) => {
this.updateDarkModePreferences(dark);
});

await this.themeService.initDarkModePreference();
}

Expand All @@ -46,16 +37,8 @@ export class AppRoot {
}
}

componentDidUnload() {
this.timerService.destroy();

if (this.themeSubscription) {
this.themeSubscription.unsubscribe();
}
}

private updateDarkModePreferences(dark: boolean) {
dark ? this.domBodyClassList.add('dark') : this.domBodyClassList.remove('dark');
async componentDidUnload() {
await this.timerService.destroy();
}

render() {
Expand Down
32 changes: 4 additions & 28 deletions remote/src/app/components/app-header/app-header.tsx
Original file line number Diff line number Diff line change
@@ -1,40 +1,16 @@
import {Component, h, State} from '@stencil/core';
import {Component, h} from '@stencil/core';

import {Subscription} from 'rxjs';

import {ThemeService} from '../../services/theme/theme.service';
import themeStore from '../../stores/theme.store';

@Component({
tag: 'app-header',
styleUrl: 'app-header.scss'
styleUrl: 'app-header.scss',
})
export class AppHeader {
private themeSubscription: Subscription;
private themeService: ThemeService;

@State()
private darkTheme: boolean;

constructor() {
this.themeService = ThemeService.getInstance();
}

async componentWillLoad() {
this.themeSubscription = this.themeService.watch().subscribe((dark: boolean) => {
this.darkTheme = dark;
});
}

componentWillUnload() {
if (this.themeSubscription) {
this.themeSubscription.unsubscribe();
}
}

render() {
return (
<ion-header>
<ion-toolbar color={this.darkTheme ? 'dark' : 'primary'}>
<ion-toolbar color={themeStore.state.darkTheme ? 'dark' : 'primary'}>
<slot name="start">
<ion-buttons slot="start">
<ion-menu-toggle>
Expand Down
22 changes: 7 additions & 15 deletions remote/src/app/components/app-notes/app-notes.tsx
Original file line number Diff line number Diff line change
@@ -1,32 +1,24 @@
import {Component, h, Listen, State} from '@stencil/core';

import {Subscription} from 'rxjs';
import notesStores from '../../stores/notes.store';

import {Remarkable} from 'remarkable';

import {NotesService} from '../../services/notes/notes.service';

@Component({
tag: 'app-notes',
styleUrl: 'app-notes.scss'
styleUrl: 'app-notes.scss',
})
export class AppNotes {
private notesService: NotesService;

private subscription: Subscription;
private destroyListener;

@State()
private portrait: boolean = true;

@State()
private notes: string;

constructor() {
this.notesService = NotesService.getInstance();
}

componentWillLoad() {
this.subscription = this.notesService.watch().subscribe((element: HTMLElement) => {
notesStores.onChange('currentSlide', (element: HTMLElement) => {
let notes: string = undefined;

if (document && element) {
Expand All @@ -36,7 +28,7 @@ export class AppNotes {
const md: Remarkable = new Remarkable({
html: true,
xhtmlOut: true,
breaks: true
breaks: true,
});

const codeRule = (inline: boolean) => (tokens, idx, _options, _env) => {
Expand All @@ -63,8 +55,8 @@ export class AppNotes {
}

componentDidUnload() {
if (this.subscription) {
this.subscription.unsubscribe();
if (this.destroyListener) {
this.destroyListener();
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,84 +1,24 @@
import {Component, State, h} from '@stencil/core';
import {Component, h} from '@stencil/core';

import {BehaviorSubject, Subscription} from 'rxjs';

import {addMilliseconds, formatDistanceStrict} from 'date-fns';

import {TimerInterval, TimerService} from '../../services/timer/timer.service';
import timerStore from '../../stores/timer.store';

@Component({
tag: 'app-stopwatch-time',
styleUrl: 'app-stopwatch-time.scss'
styleUrl: 'app-stopwatch-time.scss',
})
export class AppStopwatchTime {
private watcherSubscription: Subscription;
private timerSubscription: Subscription;

@State()
private remainingText: string;

@State()
private remainingTime: number = 0;

private timerService: TimerService;

constructor() {
this.timerService = TimerService.getInstance();
}

async componentWillLoad() {
this.watcherSubscription = this.timerService.watch().subscribe((timer: BehaviorSubject<TimerInterval>) => {
if (timer) {
this.timerSubscription = timer.subscribe(
(interval: TimerInterval) => {
if (interval) {
this.remainingTime = interval.timerRemaining;

const end: Date = addMilliseconds(new Date(), this.remainingTime);
this.remainingText = formatDistanceStrict(end, new Date());
} else {
this.remainingTime = 0;
this.remainingText = formatDistanceStrict(new Date(), new Date());
}
},
(_err) => {
// Do nothing
},
async () => {
this.remainingTime = 0;
this.remainingText = formatDistanceStrict(new Date(), new Date());

if (this.timerSubscription) {
this.timerSubscription.unsubscribe();
}
}
);
}
});
}

async componentDidUnload() {
if (this.timerSubscription) {
this.timerSubscription.unsubscribe();
}

if (this.watcherSubscription) {
this.watcherSubscription.unsubscribe();
}
}

render() {
let color: string = 'primary';
if (this.remainingTime >= 30000 && this.remainingTime < 60000) {
if (timerStore.state.remainingTime >= 30000 && timerStore.state.remainingTime < 60000) {
color = 'secondary';
} else if (this.remainingTime < 30000 && this.remainingTime >= 0) {
} else if (timerStore.state.remainingTime < 30000 && timerStore.state.remainingTime >= 0) {
color = 'tertiary';
}

if (this.remainingText) {
if (timerStore.state.remainingText) {
return (
<ion-chip color="danger" style={{background: `var(--ion-color-${color})`, color: 'var(--ion-color-light)'}}>
<ion-label>{this.remainingText}</ion-label>
<ion-label>{timerStore.state.remainingText}</ion-label>
</ion-chip>
);
} else {
Expand Down
Loading