diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index 7419694c..d893df5e 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -315,7 +315,8 @@ "delete_all_themes": "Delete all themes", "delete_all_themes_description": "This will delete all your custom themes", "delete_theme_description": "This will delete the theme {{theme}}", - "cancel": "Cancel" + "cancel": "Cancel", + "appearance": "Appearance" }, "notifications": { "download_complete": "Download complete", diff --git a/src/main/events/themes/css-injector.ts b/src/main/events/themes/css-injector.ts index 86ddc431..0379c053 100644 --- a/src/main/events/themes/css-injector.ts +++ b/src/main/events/themes/css-injector.ts @@ -2,11 +2,11 @@ import { registerEvent } from "../register-event"; import { WindowManager } from "@main/services"; const injectCSS = async ( - _event: Electron.IpcMainInvokeEvent, - cssString: string + _event: Electron.IpcMainInvokeEvent, + cssString: string ) => { - WindowManager.mainWindow?.webContents.send("css-injected", cssString); - return; + WindowManager.mainWindow?.webContents.send("css-injected", cssString); + return; }; -registerEvent("injectCSS", injectCSS); \ No newline at end of file +registerEvent("injectCSS", injectCSS); diff --git a/src/main/events/themes/get-active-custom-theme.ts b/src/main/events/themes/get-active-custom-theme.ts index 6b8f2f2d..a5018a35 100644 --- a/src/main/events/themes/get-active-custom-theme.ts +++ b/src/main/events/themes/get-active-custom-theme.ts @@ -3,8 +3,8 @@ import { themes } from "@main/level/sublevels/themes"; import { Theme } from "@types"; const getActiveCustomTheme = async () => { - const allThemes = await themes.values().all(); - return allThemes.find((theme: Theme) => theme.isActive); + const allThemes = await themes.values().all(); + return allThemes.find((theme: Theme) => theme.isActive); }; registerEvent("getActiveCustomTheme", getActiveCustomTheme); diff --git a/src/main/events/themes/get-custom-theme-by-id.ts b/src/main/events/themes/get-custom-theme-by-id.ts index 792df84d..78d2ccb3 100644 --- a/src/main/events/themes/get-custom-theme-by-id.ts +++ b/src/main/events/themes/get-custom-theme-by-id.ts @@ -1,8 +1,11 @@ import { themes } from "@main/level/sublevels/themes"; import { registerEvent } from "../register-event"; -const getCustomThemeById = async (_event: Electron.IpcMainInvokeEvent, themeId: string) => { - return await themes.get(themeId); +const getCustomThemeById = async ( + _event: Electron.IpcMainInvokeEvent, + themeId: string +) => { + return await themes.get(themeId); }; registerEvent("getCustomThemeById", getCustomThemeById); diff --git a/src/main/events/themes/open-editor-window.ts b/src/main/events/themes/open-editor-window.ts index 2cb630d1..59838ed4 100644 --- a/src/main/events/themes/open-editor-window.ts +++ b/src/main/events/themes/open-editor-window.ts @@ -1,7 +1,10 @@ import { WindowManager } from "@main/services"; import { registerEvent } from "../register-event"; -const openEditorWindow = async (_event: Electron.IpcMainInvokeEvent, themeId: string) => { +const openEditorWindow = async ( + _event: Electron.IpcMainInvokeEvent, + themeId: string +) => { WindowManager.openEditorWindow(themeId); }; diff --git a/src/main/services/window-manager.ts b/src/main/services/window-manager.ts index 1e199f08..666d5c3e 100644 --- a/src/main/services/window-manager.ts +++ b/src/main/services/window-manager.ts @@ -230,16 +230,11 @@ export class WindowManager { `${process.env["ELECTRON_RENDERER_URL"]}#/editor?themeId=${themeId}` ); } else { - editorWindow.loadFile( - path.join(__dirname, "../renderer/index.html"), - { - hash: "editor", - } - ); + editorWindow.loadFile(path.join(__dirname, "../renderer/index.html"), { + hash: "editor", + }); } - - editorWindow.once("ready-to-show", () => { editorWindow.show(); }); diff --git a/src/preload/index.ts b/src/preload/index.ts index 2d40de0c..fa369173 100644 --- a/src/preload/index.ts +++ b/src/preload/index.ts @@ -349,11 +349,12 @@ contextBridge.exposeInMainWorld("electron", { getActiveCustomTheme: () => ipcRenderer.invoke("getActiveCustomTheme"), /* Editor */ - openEditorWindow: (themeId: string) => ipcRenderer.invoke("openEditorWindow", themeId), - injectCSS: (cssString: string) => - ipcRenderer.invoke("injectCSS", cssString), + openEditorWindow: (themeId: string) => + ipcRenderer.invoke("openEditorWindow", themeId), + injectCSS: (cssString: string) => ipcRenderer.invoke("injectCSS", cssString), onCssInjected: (cb: (cssString: string) => void) => { - const listener = (_event: Electron.IpcRendererEvent, cssString: string) => cb(cssString); + const listener = (_event: Electron.IpcRendererEvent, cssString: string) => + cb(cssString); ipcRenderer.on("css-injected", listener); return () => ipcRenderer.removeListener("css-injected", listener); }, diff --git a/src/renderer/src/declaration.d.ts b/src/renderer/src/declaration.d.ts index ccb66ad0..82ed65a6 100644 --- a/src/renderer/src/declaration.d.ts +++ b/src/renderer/src/declaration.d.ts @@ -282,7 +282,9 @@ declare global { /* Editor */ openEditorWindow: (themeId: string) => Promise; injectCSS: (cssString: string) => Promise; - onCssInjected: (cb: (cssString: string) => void) => () => Electron.IpcRenderer; + onCssInjected: ( + cb: (cssString: string) => void + ) => () => Electron.IpcRenderer; } interface Window { diff --git a/src/renderer/src/pages/editor/editor.scss b/src/renderer/src/pages/editor/editor.scss index 09c58612..d522c8c5 100644 --- a/src/renderer/src/pages/editor/editor.scss +++ b/src/renderer/src/pages/editor/editor.scss @@ -71,4 +71,4 @@ margin-bottom: 8px; } } -} \ No newline at end of file +} diff --git a/src/renderer/src/pages/editor/editor.tsx b/src/renderer/src/pages/editor/editor.tsx index 22a8f3e9..95210b2f 100644 --- a/src/renderer/src/pages/editor/editor.tsx +++ b/src/renderer/src/pages/editor/editor.tsx @@ -1,22 +1,26 @@ -import { useEffect, useState } from 'react'; +import { useEffect, useState } from "react"; import "./editor.scss"; -import Editor from '@monaco-editor/react'; -import { Theme } from '@types'; -import { useSearchParams } from 'react-router-dom'; -import { Button } from '@renderer/components'; -import { CheckIcon, CodeIcon, ProjectRoadmapIcon } from '@primer/octicons-react'; -import { useTranslation } from 'react-i18next'; +import Editor from "@monaco-editor/react"; +import { Theme } from "@types"; +import { useSearchParams } from "react-router-dom"; +import { Button } from "@renderer/components"; +import { + CheckIcon, + CodeIcon, + ProjectRoadmapIcon, +} from "@primer/octicons-react"; +import { useTranslation } from "react-i18next"; const EditorPage = () => { const [searchParams] = useSearchParams(); const [theme, setTheme] = useState(null); - const [code, setCode] = useState(''); - const [activeTab, setActiveTab] = useState('code'); + const [code, setCode] = useState(""); + const [activeTab, setActiveTab] = useState("code"); const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false); - const themeId = searchParams.get('themeId'); + const themeId = searchParams.get("themeId"); - const { t } = useTranslation('settings'); + const { t } = useTranslation("settings"); const handleTabChange = (tab: string) => { setActiveTab(tab); @@ -24,7 +28,7 @@ const EditorPage = () => { useEffect(() => { if (themeId) { - window.electron.getCustomThemeById(themeId).then(loadedTheme => { + window.electron.getCustomThemeById(themeId).then((loadedTheme) => { if (loadedTheme) { setTheme(loadedTheme); setCode(loadedTheme.code); @@ -35,16 +39,16 @@ const EditorPage = () => { useEffect(() => { const handleKeyDown = (event: KeyboardEvent) => { - if ((event.ctrlKey || event.metaKey) && event.key === 's') { + if ((event.ctrlKey || event.metaKey) && event.key === "s") { event.preventDefault(); handleSave(); } }; - window.addEventListener('keydown', handleKeyDown); + window.addEventListener("keydown", handleKeyDown); return () => { - window.removeEventListener('keydown', handleKeyDown); + window.removeEventListener("keydown", handleKeyDown); }; }, [code, theme]); @@ -60,7 +64,7 @@ const EditorPage = () => { const updatedTheme = { ...theme, code: code, - updatedAt: new Date() + updatedAt: new Date(), }; await window.electron.updateCustomTheme(theme.id, updatedTheme); @@ -76,13 +80,10 @@ const EditorPage = () => {

{theme?.name}

- {hasUnsavedChanges && ( -
-
- )} + {hasUnsavedChanges &&
}
- {activeTab === 'code' && ( + {activeTab === "code" && ( { options={{ minimap: { enabled: false }, fontSize: 14, - lineNumbers: 'on', - wordWrap: 'on', + lineNumbers: "on", + wordWrap: "on", automaticLayout: true, }} /> )} - {activeTab === 'info' && ( + {activeTab === "info" && (
- entao mano eu ate fiz isso aqui mas tava feio dms ai deu vergonha e removi kkkk + entao mano eu ate fiz isso aqui mas tava feio dms ai deu vergonha e + removi kkkk
)}
- -
-
diff --git a/src/renderer/src/pages/settings/aparence/components/theme-actions.tsx b/src/renderer/src/pages/settings/aparence/components/theme-actions.tsx index b9186666..4f85e384 100644 --- a/src/renderer/src/pages/settings/aparence/components/theme-actions.tsx +++ b/src/renderer/src/pages/settings/aparence/components/theme-actions.tsx @@ -11,7 +11,7 @@ interface ThemeActionsProps { } export const ThemeActions = ({ onListUpdated }: ThemeActionsProps) => { - const { t } = useTranslation('settings'); + const { t } = useTranslation("settings"); const [addThemeModalVisible, setAddThemeModalVisible] = useState(false); const [deleteAllThemesModalVisible, setDeleteAllThemesModalVisible] = diff --git a/src/renderer/src/pages/settings/aparence/components/theme-card.tsx b/src/renderer/src/pages/settings/aparence/components/theme-card.tsx index f15d3f22..b2971bc3 100644 --- a/src/renderer/src/pages/settings/aparence/components/theme-card.tsx +++ b/src/renderer/src/pages/settings/aparence/components/theme-card.tsx @@ -14,7 +14,7 @@ interface ThemeCardProps { } export const ThemeCard = ({ theme, onListUpdated }: ThemeCardProps) => { - const { t } = useTranslation('settings'); + const { t } = useTranslation("settings"); const navigate = useNavigate(); const [deleteThemeModalVisible, setDeleteThemeModalVisible] = useState(false); @@ -26,19 +26,19 @@ export const ThemeCard = ({ theme, onListUpdated }: ThemeCardProps) => { if (!currentTheme) return; const activeTheme = await window.electron.getActiveCustomTheme(); - + if (activeTheme) { removeCustomCss(); await window.electron.updateCustomTheme(activeTheme.id, { ...activeTheme, - isActive: false + isActive: false, }); } injectCustomCss(currentTheme.code); await window.electron.updateCustomTheme(currentTheme.id, { ...currentTheme, - isActive: true + isActive: true, }); onListUpdated(); @@ -52,7 +52,7 @@ export const ThemeCard = ({ theme, onListUpdated }: ThemeCardProps) => { removeCustomCss(); await window.electron.updateCustomTheme(theme.id, { ...theme, - isActive: false + isActive: false, }); onListUpdated(); diff --git a/src/renderer/src/pages/settings/aparence/settings-appearance.tsx b/src/renderer/src/pages/settings/aparence/settings-appearance.tsx index 3c038d99..ef656a14 100644 --- a/src/renderer/src/pages/settings/aparence/settings-appearance.tsx +++ b/src/renderer/src/pages/settings/aparence/settings-appearance.tsx @@ -26,7 +26,11 @@ export const SettingsAppearance = () => { ) : ( [...themes] - .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()) + .sort( + (a, b) => + new Date(b.updatedAt).getTime() - + new Date(a.updatedAt).getTime() + ) .map((theme) => (