From 4be519f05279a38ddfee62c960a33340f64cfe3a Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Sun, 22 Nov 2020 22:43:28 +0100 Subject: [PATCH] Refactor and fix --- src/helper/sum.ts | 1 + .../basics/image-anchor/image-anchor.scss | 2 + src/page/basics/image/image.ts | 2 +- src/page/basics/preview/preview.scss | 12 ++-- src/page/basics/preview/preview.ts | 7 +-- src/page/basics/text/text.html.ts | 2 +- src/page/basics/text/text.scss | 5 +- src/page/basics/video/video.html.ts | 10 ++-- src/page/basics/video/video.ts | 16 ++--- src/page/footer/footer.html.ts | 2 +- src/page/footer/footer.scss | 5 +- src/page/header/header.scss | 10 +++- src/page/image-viewer/image-viewer.html.ts | 2 +- src/page/image-viewer/image-viewer.scss | 23 ++++---- src/page/image-viewer/image-viewer.ts | 58 ++++++++----------- src/page/theme-switcher/theme-switcher.ts | 12 +--- .../timeline-element/timeline-element.scss | 18 ++++-- .../timeline-element/timeline-element.ts | 13 +++-- src/page/timeline/timeline.scss | 2 +- src/style/animations/animations.ts | 4 +- src/style/dark-mode/dark-mode.ts | 4 +- src/style/mixins.scss | 21 +++---- 22 files changed, 118 insertions(+), 113 deletions(-) diff --git a/src/helper/sum.ts b/src/helper/sum.ts index 4e9a940..c75dc64 100644 --- a/src/helper/sum.ts +++ b/src/helper/sum.ts @@ -1,2 +1,3 @@ export const sum = (list: ArrayLike): number => + // @ts-ignore Array.prototype.reduce.call(list, (a: number, sum: number) => a + sum, 0); diff --git a/src/page/basics/image-anchor/image-anchor.scss b/src/page/basics/image-anchor/image-anchor.scss index efb0e86..3f5ba0d 100644 --- a/src/page/basics/image-anchor/image-anchor.scss +++ b/src/page/basics/image-anchor/image-anchor.scss @@ -10,10 +10,12 @@ svg { stroke: var(--normal-text-color); + transition: stroke var(--transition-time); } } p { + @include main-font(); padding-bottom: var(--small-margin); font-size: 0.9rem; font-style: italic; diff --git a/src/page/basics/image/image.ts b/src/page/basics/image/image.ts index 9c764fb..26a3c5e 100644 --- a/src/page/basics/image/image.ts +++ b/src/page/basics/image/image.ts @@ -31,7 +31,7 @@ export class Image extends PageElement { image.images .slice(0, -1) .map(d => `(max-width: ${d.width / Image.imageScreenRatio}px) ${d.width}px,`) - .join('\n') + `\n${last(image.images).width}px` + .join('\n') + `\n${last(image.images)!.width}px` ); } } diff --git a/src/page/basics/preview/preview.scss b/src/page/basics/preview/preview.scss index f37efa2..1d2b6a0 100644 --- a/src/page/basics/preview/preview.scss +++ b/src/page/basics/preview/preview.scss @@ -32,10 +32,15 @@ } } - .loading, - .loading > svg { + .loading { @include square(var(--large-icon-size)); @include absolute-center; + visibility: hidden; + + & > svg { + @include square(var(--large-icon-size)); + @include absolute-center; + } } iframe { @@ -52,9 +57,6 @@ .load-button { visibility: hidden; } - } - - &.waiting { .loading { visibility: visible; } diff --git a/src/page/basics/preview/preview.ts b/src/page/basics/preview/preview.ts index df2c584..36960e9 100644 --- a/src/page/basics/preview/preview.ts +++ b/src/page/basics/preview/preview.ts @@ -3,7 +3,6 @@ import { createElement } from '../../../helper/create-element'; import { generate } from './preview.html'; import { Image } from '../image/image'; import { ResponsiveImage } from '../../../types/responsive-image'; -import { OnLoadEvent } from '../../../events/concrete-events/on-load-event'; export class Preview extends PageElement { public constructor( @@ -18,14 +17,14 @@ export class Preview extends PageElement { this.query('.load-button').addEventListener('click', this.loadContent.bind(this)); } - public handleOnLoadEvent(event: OnLoadEvent): OnLoadEvent { + public setParent(parent: PageElement) { new IntersectionObserver(e => { if (!e[0].isIntersecting) { this.unloadContent(); } - }).observe(this.htmlRoot.parentElement); + }).observe(this.htmlRoot.parentElement!); - return event; + super.setParent(parent); } public loadContent() { diff --git a/src/page/basics/text/text.html.ts b/src/page/basics/text/text.html.ts index 6133c67..906f48c 100644 --- a/src/page/basics/text/text.html.ts +++ b/src/page/basics/text/text.html.ts @@ -2,5 +2,5 @@ import './text.scss'; import { html } from '../../../types/html'; export const generate = (text: string): html => ` -

${text}

+

${text}

`; diff --git a/src/page/basics/text/text.scss b/src/page/basics/text/text.scss index 50f9ae0..ff1c0ba 100644 --- a/src/page/basics/text/text.scss +++ b/src/page/basics/text/text.scss @@ -1,3 +1,6 @@ -.primitive-text { +@use '../../../style/mixins' as *; + +.text { + @include main-font(); text-align: left; } diff --git a/src/page/basics/video/video.html.ts b/src/page/basics/video/video.html.ts index 818d08e..4f12bd2 100644 --- a/src/page/basics/video/video.html.ts +++ b/src/page/basics/video/video.html.ts @@ -9,16 +9,16 @@ export const generate = ({ mp4, container, }: { - poster: url; - options: string; + poster?: url; + options?: string; webm: url; mp4: url; - container: boolean; + container?: boolean; }): html => ` - ${container ? `
` : ''} + ${container === undefined || container ? `
` : ''} - ${container ? `
` : ''} + ${container === undefined || container ? `
` : ''} `; diff --git a/src/page/basics/video/video.ts b/src/page/basics/video/video.ts index a826e19..c3f3fd8 100644 --- a/src/page/basics/video/video.ts +++ b/src/page/basics/video/video.ts @@ -4,13 +4,13 @@ import { generate } from './video.html'; import { url } from '../../../types/url'; export class Video extends PageElement { - public constructor( - poster: url, - mp4: url, - webm: url, - options?: string, - container = true - ) { - super(createElement(generate({ poster, mp4, webm, options, container }))); + public constructor(options: { + poster?: url; + mp4: url; + webm: url; + options?: string; + container?: boolean; + }) { + super(createElement(generate(options))); } } diff --git a/src/page/footer/footer.html.ts b/src/page/footer/footer.html.ts index 770aeaa..6fa988e 100644 --- a/src/page/footer/footer.html.ts +++ b/src/page/footer/footer.html.ts @@ -11,7 +11,7 @@ export const generate = ({ lastEditText, lastEdit, }: Footer): html => ` -