From 49e1924a88819dbe88452f9afd528ec519ee2cea Mon Sep 17 00:00:00 2001 From: sethburkart123 Date: Tue, 2 Jul 2024 20:24:51 +1000 Subject: [PATCH] remove editor --- src/SEQTA.ts | 6 -- src/interface/main.tsx | 2 - src/interface/pages/Editor.css | 15 ---- src/interface/pages/Editor.tsx | 23 ------ src/seqta/ui/customMessageEditor.ts | 121 ---------------------------- 5 files changed, 167 deletions(-) delete mode 100644 src/interface/pages/Editor.css delete mode 100644 src/interface/pages/Editor.tsx delete mode 100644 src/seqta/ui/customMessageEditor.ts diff --git a/src/SEQTA.ts b/src/SEQTA.ts index 171b035b..ad4ed14e 100644 --- a/src/SEQTA.ts +++ b/src/SEQTA.ts @@ -27,7 +27,6 @@ import { initializeSettingsState, settingsState } from './seqta/utils/listeners/ import { StorageChangeHandler } from './seqta/utils/listeners/StorageChanges' import { AddBetterSEQTAElements } from './seqta/ui/AddBetterSEQTAElements' import { eventManager } from './seqta/utils/listeners/EventManager' -import handleComposeMessage from './seqta/ui/customMessageEditor' declare global { interface Window { @@ -561,11 +560,6 @@ async function LoadPageElements(): Promise { className: 'timetablepage', }, handleTimetable); - eventManager.register('composeMessage', { - elementType: 'div', - customCheck: (element: Element) => element.querySelector('.coneqtMessage') !== null - }, handleComposeMessage); - await handleSublink(sublink); } diff --git a/src/interface/main.tsx b/src/interface/main.tsx index 26a7f50f..0c1fdb18 100644 --- a/src/interface/main.tsx +++ b/src/interface/main.tsx @@ -10,7 +10,6 @@ import font from '../resources/fonts/IconFamily.woff' import ThemeCreator from './pages/ThemeCreator'; import Store from './pages/Store'; -import Editor from './pages/Editor'; browser.storage.local.get().then(({ DarkMode }) => { if (DarkMode) document.documentElement.classList.add('dark'); @@ -53,7 +52,6 @@ root.render( } /> } /> } /> - } /> diff --git a/src/interface/pages/Editor.css b/src/interface/pages/Editor.css deleted file mode 100644 index 2a3b8994..00000000 --- a/src/interface/pages/Editor.css +++ /dev/null @@ -1,15 +0,0 @@ -body { - background: transparent !important; -} - -.bn-container[data-color-scheme=dark] { - --bn-colors-editor-background: #18181B00 !important; -} - -.bn-container > [contenteditable="true"] { - height: 100vh !important; -} - -.ProseMirror { - background: transparent !important; -} \ No newline at end of file diff --git a/src/interface/pages/Editor.tsx b/src/interface/pages/Editor.tsx deleted file mode 100644 index 918f7748..00000000 --- a/src/interface/pages/Editor.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import "@blocknote/core/fonts/inter.css"; -import { useCreateBlockNote } from "@blocknote/react"; -import { BlockNoteView } from "@blocknote/mantine"; -import "@blocknote/mantine/style.css"; -import './Editor.css' - - -export default function Editor() { - const editor = useCreateBlockNote({}); - - editor._tiptapEditor.on('update', () => { - window.parent.postMessage({ - type: 'message-html', - data: editor._tiptapEditor.getHTML(), - }, '*') - }) - - return ( -
- -
- ) -} \ No newline at end of file diff --git a/src/seqta/ui/customMessageEditor.ts b/src/seqta/ui/customMessageEditor.ts deleted file mode 100644 index f88a9a4a..00000000 --- a/src/seqta/ui/customMessageEditor.ts +++ /dev/null @@ -1,121 +0,0 @@ -import stringToHTML from "../utils/stringToHTML"; -import browser from 'webextension-polyfill'; -import styles from "@blocknote/mantine/style.css?raw"; - -export default async function handleComposeMessage(): Promise { - console.log('COMPOSE MESSAGE!'); - - const container: HTMLElement | null = document.querySelector('.pane .footer .pillbox'); - const simpleEditorButton: HTMLButtonElement | null = document.querySelector('.pane .footer .pillbox button.first') as HTMLButtonElement; - - if (container && simpleEditorButton) { - const buttonHTML = /* html */ ` - - `; - const button: HTMLElement = stringToHTML(buttonHTML); - - // Check if the button already exists - if (!container.querySelector('#betterEditorButton')) { - // Insert the new button after the Simple editor button - simpleEditorButton.insertAdjacentElement('afterend', button.firstElementChild as HTMLElement); - } - - // Add click event listeners to the container (event delegation) - container.addEventListener('click', handleButtonClick); - } -} - -function handleButtonClick(event: MouseEvent): void { - console.log('handleButtonClick', event); - const target = event.target as HTMLElement; - - if (target.tagName !== 'BUTTON') return; - - const container = target.closest('.pillbox') as HTMLElement; - if (!container) return; - - const simpleEditorButton = container.querySelector('button.first') as HTMLButtonElement; - const betterEditorButton = container.querySelector('#betterEditorButton') as HTMLButtonElement; - - if (!simpleEditorButton || !betterEditorButton) { - console.error('Could not find Simple Editor or Better Editor buttons'); - return; - } - - const isBetterEditorButton = target === betterEditorButton; - const isSimpleEditorButton = target === simpleEditorButton; - - if (isBetterEditorButton) { - activateBetterEditor(simpleEditorButton, betterEditorButton); - } else if (isSimpleEditorButton) { - activateSimpleEditor(simpleEditorButton, betterEditorButton); - } else { - deactivateBetterEditor(simpleEditorButton, betterEditorButton); - } - - container.querySelectorAll('button').forEach(btn => btn.classList.remove('depressed')); - target.classList.add('depressed'); -} - -function activateBetterEditor(simpleEditorButton: HTMLButtonElement, betterEditorButton: HTMLButtonElement): void { - // Programmatically click the Simple Editor button first - simpleEditorButton.click(); - - // Then proceed with Better Editor activation - simpleEditorButton.classList.remove('depressed'); - betterEditorButton.classList.add('depressed'); - - const ckeInner = document.querySelector('.pane .cke_inner') as HTMLElement; - if (ckeInner) ckeInner.style.display = 'none'; - - let extensionEditor: HTMLIFrameElement | null = document.querySelector('.extension-editor') as HTMLIFrameElement; - if (extensionEditor) { - extensionEditor.style.display = 'block'; - } else { - const extensionEditorIframe: HTMLIFrameElement = document.createElement('iframe'); - extensionEditorIframe.src = `${browser.runtime.getURL('src/interface/index.html')}#editor`; - extensionEditorIframe.setAttribute('allowTransparency', 'true'); - extensionEditorIframe.setAttribute('excludeDarkCheck', 'true'); - extensionEditorIframe.classList.add('extension-editor'); - document.getElementById('cke_editor1')?.appendChild(extensionEditorIframe); - } - - extensionEditor = document.querySelector('.extension-editor') as HTMLIFrameElement; - const ckeEditor = document.querySelector('#cke_1_contents iframe.cke_wysiwyg_frame') as HTMLIFrameElement; - - window.addEventListener('message', (event) => handleEditorMessage(event, ckeEditor), { once: true }); -} - -function activateSimpleEditor(simpleEditorButton: HTMLButtonElement, betterEditorButton: HTMLButtonElement): void { - simpleEditorButton.classList.add('depressed'); - betterEditorButton.classList.remove('depressed'); - - const ckeInner = document.querySelector('.pane .cke_inner') as HTMLElement; - const extensionEditor = document.querySelector('.extension-editor') as HTMLIFrameElement; - - if (ckeInner) ckeInner.style.removeProperty('display') - if (extensionEditor) extensionEditor.style.display = 'none' -} - -function deactivateBetterEditor(simpleEditorButton: HTMLButtonElement, betterEditorButton: HTMLButtonElement): void { - const ckeInner = document.querySelector('.pane .cke_inner') as HTMLElement; - const ckeContents = document.querySelector('.pane .cke_contents') as HTMLElement; - const extensionEditor = document.querySelector('.extension-editor') as HTMLIFrameElement; - - if (ckeInner) ckeInner.style.removeProperty('display'); - if (ckeContents) ckeContents.style.removeProperty('display'); - if (extensionEditor) extensionEditor.style.removeProperty('display'); - - simpleEditorButton.classList.remove('depressed'); - betterEditorButton.classList.remove('depressed'); -} - -function handleEditorMessage(event: MessageEvent, ckeEditor: HTMLIFrameElement): void { - if (!event.origin.includes(browser.runtime.id) || event.data.type !== "message-html") return; - - if (ckeEditor.contentDocument) { - ckeEditor.contentDocument.body.innerHTML = event.data.data + ``; - } -}