From 6f18c6fbfb8629f436784d958b4be2fafc7b83a6 Mon Sep 17 00:00:00 2001 From: younglei Date: Tue, 14 Jun 2022 21:13:10 +0800 Subject: [PATCH] refactor: optimize code --- electron-preload/index.ts | 19 -------- electron-preload/{loading.ts => splash.ts} | 55 +++++++++++++++------- 2 files changed, 38 insertions(+), 36 deletions(-) delete mode 100644 electron-preload/index.ts rename electron-preload/{loading.ts => splash.ts} (67%) diff --git a/electron-preload/index.ts b/electron-preload/index.ts deleted file mode 100644 index d8e51b4..0000000 --- a/electron-preload/index.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { useLoading } from './loading' - -function domReady(condition: DocumentReadyState[] = ['complete', 'interactive']) { - return new Promise(resolve => { - if (condition.includes(document.readyState)) { - resolve(true) - } else { - document.addEventListener('readystatechange', () => { - if (condition.includes(document.readyState)) { - resolve(true) - } - }) - } - }) -} - -const { appendLoading, removeLoading } = useLoading() -window.removeLoading = removeLoading -domReady().then(appendLoading) diff --git a/electron-preload/loading.ts b/electron-preload/splash.ts similarity index 67% rename from electron-preload/loading.ts rename to electron-preload/splash.ts index 9d9351e..ea48210 100644 --- a/electron-preload/loading.ts +++ b/electron-preload/splash.ts @@ -1,10 +1,38 @@ + +function domReady(condition: DocumentReadyState[] = ['complete', 'interactive']) { + return new Promise(resolve => { + if (condition.includes(document.readyState)) { + resolve(true) + } else { + document.addEventListener('readystatechange', () => { + if (condition.includes(document.readyState)) { + resolve(true) + } + }) + } + }) +} + +const safeDOM = { + append(parent: HTMLElement, child: HTMLElement) { + if (!Array.from(parent.children).find(e => e === child)) { + return parent.appendChild(child) + } + }, + remove(parent: HTMLElement, child: HTMLElement) { + if (Array.from(parent.children).find(e => e === child)) { + return parent.removeChild(child) + } + }, +} + /** * https://tobiasahlin.com/spinkit * https://connoratherton.com/loaders * https://projects.lukehaas.me/css-loaders * https://matejkustec.github.io/SpinThatShit */ - export function useLoading() { +function useLoading() { const className = `loaders-css__square-spin` const styleContent = ` @keyframes square-spin { @@ -43,25 +71,18 @@ return { appendLoading() { - safe.append(document.head, oStyle) - safe.append(document.body, oDiv) + safeDOM.append(document.head, oStyle) + safeDOM.append(document.body, oDiv) }, removeLoading() { - safe.remove(document.head, oStyle) - safe.remove(document.body, oDiv) + safeDOM.remove(document.head, oStyle) + safeDOM.remove(document.body, oDiv) }, } } -const safe = { - append(parent: HTMLElement, child: HTMLElement) { - if (!Array.from(parent.children).find(e => e === child)) { - return parent.appendChild(child) - } - }, - remove(parent: HTMLElement, child: HTMLElement) { - if (Array.from(parent.children).find(e => e === child)) { - return parent.removeChild(child) - } - }, -} +// ---------------------------------------------------------------------- + +const { appendLoading, removeLoading } = useLoading() +window.removeLoading = removeLoading +domReady().then(appendLoading)