diff --git a/flatpak/com.github.ransome1.sleek.appdata.xml b/flatpak/com.github.ransome1.sleek.appdata.xml
index 72559da7..4862c7b3 100755
--- a/flatpak/com.github.ransome1.sleek.appdata.xml
+++ b/flatpak/com.github.ransome1.sleek.appdata.xml
@@ -9,7 +9,7 @@
ransome1
-
+
https://github.com/ransome1/sleek
https://github.com/ransome1/sleek/issues
diff --git a/package.json b/package.json
index cc7902df..bc80fe8a 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "sleek",
"productName": "sleek",
- "version": "2.0.16",
+ "version": "2.0.16-rc.2",
"description": "todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS)",
"synopsis": "todo.txt manager for Linux, Windows and MacOS, free and open-source (FOSS)",
"keywords": [
@@ -34,7 +34,7 @@
"typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false",
"typecheck": "yarn typecheck:node && yarn typecheck:web",
"start": "electron-vite preview",
- "dev": "electron-vite dev",
+ "dev": "yarn lint && electron-vite dev",
"build": "yarn peggy && electron-vite build",
"postinstall": "electron-builder install-app-deps",
"build:unpack": "yarn build && electron-builder --dir",
@@ -48,7 +48,7 @@
"@mui/icons-material": "^6.4.0",
"@mui/material": "^6.4.0",
"@mui/system": "^6.4.0",
- "@mui/x-date-pickers": "^7.23.3",
+ "@mui/x-date-pickers": "^7.24.0",
"chokidar": "^4.0.3",
"dayjs": "^1.11.13",
"electron-store": "^10.0.0",
@@ -67,7 +67,7 @@
"@electron-toolkit/eslint-config-prettier": "^2.0.0",
"@electron-toolkit/eslint-config-ts": "^2.0.0",
"@electron-toolkit/tsconfig": "^1.0.1",
- "@types/node": "^22.10.6",
+ "@types/node": "^22.10.7",
"@types/react": "^19.0.7",
"@types/react-dom": "^19.0.3",
"@typescript-eslint/parser": "^8.20.0",
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 7df72082..97dd08a6 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -1,6 +1,6 @@
name: sleek
base: core24
-version: '2.0.16-rc.1'
+version: '2.0.16'
summary: todo.txt manager for Linux, free and open-source (FOSS)
description: |
sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. Stripped down to only the most necessary features, and with a clean and simple interface, sleek aims to help you focus on getting things done.
diff --git a/src/main/index.ts b/src/main/index.ts
index 681a9e37..b645f623 100644
--- a/src/main/index.ts
+++ b/src/main/index.ts
@@ -10,6 +10,7 @@ import macIcon from '../../resources/icon.icns?asset'
import windowsIcon from '../../resources/icon.ico?asset'
import linuxIcon from '../../resources/icon.png?asset'
import './modules/IpcMain.js'
+let startTime;
const environment: string | undefined = process.env.NODE_ENV
let mainWindow: BrowserWindow | null = null
const eventListeners: Record = {}
@@ -126,6 +127,20 @@ const createMainWindow = () => {
}
})
+ mainWindow.once('ready-to-show', () => {
+ const endTime = performance.now();
+ console.log(`Startup time: ${(endTime - startTime).toFixed(2)} ms`);
+ });
+
+ mainWindow
+ .on('resize', handleResize)
+ .on('move', handleMove)
+ .on('show', handleShow)
+ .on('closed', handleClosed)
+ .on('maximize', handleMaximize)
+ .on('unmaximize', handleUnmaximize)
+
+
if (!app.isPackaged && process.env['ELECTRON_RENDERER_URL']) {
mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL'])
} else {
@@ -143,14 +158,6 @@ const createMainWindow = () => {
nativeTheme.themeSource = config.get('colorTheme')
- mainWindow
- .on('resize', handleResize)
- .on('move', handleMove)
- .on('show', handleShow)
- .on('closed', handleClosed)
- .on('maximize', handleMaximize)
- .on('unmaximize', handleUnmaximize)
-
eventListeners.handleClosed = handleClosed
eventListeners.handleResize = handleResize
eventListeners.handleMove = handleMove
@@ -162,10 +169,6 @@ const createMainWindow = () => {
createTray()
}
- if (environment === 'development') {
- mainWindow.webContents.openDevTools()
- }
-
const customStylesPath: string = config.get('customStylesPath')
if (customStylesPath) {
fs.readFile(customStylesPath, 'utf8', (error: Error | null, data) => {
@@ -176,6 +179,10 @@ const createMainWindow = () => {
console.error('Error reading the CSS file:', error)
}
})
+ }
+
+ if (environment === 'development') {
+ mainWindow.webContents.openDevTools()
}
}
@@ -202,6 +209,7 @@ const handleBeforeQuit = () => {
app
.whenReady()
.then(() => {
+ startTime = performance.now();
createMainWindow()
eventListeners.handleCreateWindow = handleCreateWindow
eventListeners.handleWindowAllClosed = handleWindowAllClosed
diff --git a/src/renderer/Grid/Renderer.tsx b/src/renderer/Grid/Renderer.tsx
index 32a560ce..39d66868 100644
--- a/src/renderer/Grid/Renderer.tsx
+++ b/src/renderer/Grid/Renderer.tsx
@@ -136,6 +136,7 @@ const RendererComponent: React.FC = memo(
})
},
a: ({ children, href }: { children: string; href?: string }): JSX.Element => {
+ if (!children) return false
const match = /([a-zA-Z]+:\/\/\S+)/g.exec(children)
const maxChars = 40
const truncatedChildren =
diff --git a/src/renderer/Themes.tsx b/src/renderer/Themes.tsx
index a96dfe77..f56980b5 100644
--- a/src/renderer/Themes.tsx
+++ b/src/renderer/Themes.tsx
@@ -10,7 +10,7 @@ const baseTheme: Theme = createTheme({
borderRadius: '0.65em'
},
typography: {
- fontFamily: 'FreeSans, Helvetica, Arial, sans-serif',
+ fontFamily: 'Helvetica, Arial, sans-serif',
fontSize: 'auto'
},
components: {
diff --git a/yarn.lock b/yarn.lock
index fe6c563c..682823f4 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -835,23 +835,23 @@
prop-types "^15.8.1"
react-is "^19.0.0"
-"@mui/x-date-pickers@^7.23.3":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.23.6.tgz#0ffedd587b5efa14ac7c3ba92e0bd575b2f8a2e2"
- integrity sha512-jt6rEAYLju3NZe3y2S+I5KcTiSHV79FW0jeNUEUTceg1qsPzseHbND66k3zVF0hO3N2oZtLtPywof6vN5Doe+Q==
+"@mui/x-date-pickers@^7.24.0":
+ version "7.24.0"
+ resolved "https://registry.yarnpkg.com/@mui/x-date-pickers/-/x-date-pickers-7.24.0.tgz#ff19defe3ffc8918bb757727878eb4a55e6b7e99"
+ integrity sha512-oBM9Yp2H3tJ7qoHB4APQJYxZG4rz6JD4CwLzbzD9o3r+E1HGpGSLhwK3rDEz9VEjbOq8893Z2TGYLLWoyjeFXQ==
dependencies:
"@babel/runtime" "^7.25.7"
"@mui/utils" "^5.16.6 || ^6.0.0"
- "@mui/x-internals" "7.23.6"
+ "@mui/x-internals" "7.24.0"
"@types/react-transition-group" "^4.4.11"
clsx "^2.1.1"
prop-types "^15.8.1"
react-transition-group "^4.4.5"
-"@mui/x-internals@7.23.6":
- version "7.23.6"
- resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.23.6.tgz#01b5fddf7a0045abefd6337561e6f3989baeab23"
- integrity sha512-hT1Pa4PNCnxwiauPbYMC3p4DiEF1x05Iu4C1MtC/jMJ1LtthymLmTuQ6ZQ53/R9FeqK6sYd6A6noR+vNMjp5DA==
+"@mui/x-internals@7.24.0":
+ version "7.24.0"
+ resolved "https://registry.yarnpkg.com/@mui/x-internals/-/x-internals-7.24.0.tgz#5d09d3d5d113e2be6ec2af49192024859951d348"
+ integrity sha512-lYa/XLltxNMY8YAFDopIHrXda2EAoqMCilyGMuPMz+WTG+b+StlUKqtj8cgFPQ/sa5dQ2fR7R3KJdjLREKUrlQ==
dependencies:
"@babel/runtime" "^7.25.7"
"@mui/utils" "^5.16.6 || ^6.0.0"
@@ -1212,21 +1212,21 @@
"@types/unist" "*"
"@types/ms@*":
- version "0.7.34"
- resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
- integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
+ integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
-"@types/node@*", "@types/node@^22.10.6":
- version "22.10.6"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.6.tgz#5c6795e71635876039f853cbccd59f523d9e4239"
- integrity sha512-qNiuwC4ZDAUNcY47xgaSuS92cjf8JbSUoaKS77bmLG1rU7MlATVSiw/IlrjtIyyskXBZ8KkNfjK/P5na7rgXbQ==
+"@types/node@*", "@types/node@^22.10.7":
+ version "22.10.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.10.7.tgz#14a1ca33fd0ebdd9d63593ed8d3fbc882a6d28d7"
+ integrity sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==
dependencies:
undici-types "~6.20.0"
"@types/node@^20.9.0":
- version "20.17.13"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.13.tgz#26a7d3e72724ed73bc2fd39a66a2ab17e6e19a00"
- integrity sha512-RNf+4dEeV69PIvyp++4IKM2vnLXtmp/JovfeQm5P5+qpKb6wHoH7INywLdZ7z+gVX46kgBP/fwJJvZYaHxtdyw==
+ version "20.17.14"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.17.14.tgz#579e7d75eeb5d46b75c73c98821639e64b689608"
+ integrity sha512-w6qdYetNL5KRBiSClK/KWai+2IMEJuAj+EujKCumalFOwXtvOXaEan9AuwcRID2IcOIAWSIfR495hBtgKlx2zg==
dependencies:
undici-types "~6.19.2"
@@ -2448,9 +2448,9 @@ electron-store@^10.0.0:
type-fest "^4.20.0"
electron-to-chromium@^1.5.73:
- version "1.5.82"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.82.tgz#b9116ac6d6b6346c2baa49f14c1272ba2ce1ccdb"
- integrity sha512-Zq16uk1hfQhyGx5GpwPAYDwddJuSGhtRhgOA2mCxANYaDT79nAeGnaXogMGng4KqLaJUVnOnuL0+TDop9nLOiA==
+ version "1.5.83"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz#3f74078f0c83e24bf7e692eaa855a998d1bec34f"
+ integrity sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==
electron-vite@^2.3.0:
version "2.3.0"
@@ -4684,9 +4684,9 @@ negotiator@^0.6.3:
integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==
node-abi@^3.45.0:
- version "3.72.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.72.0.tgz#5b86a5aa53873a67c4c502a4a77e5a014f8f19f8"
- integrity sha512-a28z9xAQXvDh40lVCknWCP5zYTZt6Av8HZqZ63U5OWxTcP20e3oOIy8yHkYfctQM2adR8ru1GxWCkS0gS+WYKA==
+ version "3.73.0"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.73.0.tgz#4459ea77e71969edba8588387eecb05e2c2cff3b"
+ integrity sha512-z8iYzQGBu35ZkTQ9mtR8RqugJZ9RCLn8fv3d7LsgDBzOijGQP3RdKTX4LA7LXw03ZhU5z0l4xfhIMgSES31+cg==
dependencies:
semver "^7.3.5"