Slight cleanup

This commit is contained in:
Amelia 2025-06-12 02:20:19 +02:00
parent 3eb7f43908
commit 1dbb53e628
No known key found for this signature in database
GPG key ID: D6D0ECE365407EAA
3 changed files with 9 additions and 8 deletions

View file

@ -242,7 +242,7 @@ export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy,
// We need the injector as toSignal is only allowed in injection context
// https://angular.dev/guide/signals#injection-context
this.readerSettings = toSignal(this.readerSettings$, {injector: this.injector}) as Signal<ReaderSetting>;
this.readerSettings = toSignal(this.readerSettings$, {injector: this.injector, requireSync: true});
// Automatically updates when the breakpoint changes, or when reader settings changes
this.widthOverride = computed(() => {
@ -255,7 +255,7 @@ export class InfiniteScrollerComponent implements OnInit, OnChanges, OnDestroy,
return (parseInt(value) <= 0) ? '' : value + '%';
});
//perform jump so the page stays in view (NOT WORKING)
//perform jump so the page stays in view
effect(() => {
const width = this.widthOverride(); // needs to be at the top for effect to work
this.currentPageElem = this.document.querySelector('img#page-' + this.pageNum);

View file

@ -75,7 +75,7 @@ export class SingleRendererComponent implements OnInit, ImageRenderer {
takeUntilDestroyed(this.destroyRef)
);
this.readerSettings = toSignal(this.readerSettings$, {injector: this.injector}) as Signal<ReaderSetting>;
this.readerSettings = toSignal(this.readerSettings$, {injector: this.injector, requireSync: true});
this.widthOverride = computed(() => {
const breakpoint = this.utilityService.activeUserBreakpoint();
const value = this.readerSettings().widthSlider;

View file

@ -175,23 +175,24 @@ export class UtilityService {
const style = getComputedStyle(this.document.body)
const mobileBreakPoint = this.parseOrDefault<number>(style.getPropertyValue('--mobile-breakpoint'), Breakpoint.Mobile);
const tabletBreakPoint = this.parseOrDefault<number>(style.getPropertyValue('--tablet-breakpoint'), Breakpoint.Tablet);
const desktopBreakPoint = this.parseOrDefault<number>(style.getPropertyValue('--desktop-breakpoint'), Breakpoint.Desktop);
//const desktopBreakPoint = this.parseOrDefault<number>(style.getPropertyValue('--desktop-breakpoint'), Breakpoint.Desktop);
if (window.innerWidth <= mobileBreakPoint) {
return UserBreakpoint.Mobile;
} else if (window.innerWidth >= mobileBreakPoint && window.innerWidth <= tabletBreakPoint) {
} else if (window.innerWidth <= tabletBreakPoint) {
return UserBreakpoint.Tablet;
}
// Fallback to desktop
return UserBreakpoint.Desktop;
}
private parseOrDefault<T>(s: string, def: T): T {
try {
return parseInt(s, 10) as T;
} catch (e) {
const ret = parseInt(s, 10);
if (isNaN(ret)) {
return def;
}
return ret as T;
}
isInViewport(element: Element, additionalTopOffset: number = 0) {