Mac Build issue, Close Button Issue and Drag Issue Fixed

This commit is contained in:
apple 2025-11-26 19:56:44 +05:30
parent 9fc9b964c2
commit 0b7d844753
4 changed files with 204 additions and 25 deletions

17
.npmrc Normal file
View File

@ -0,0 +1,17 @@
# Force use of prebuilt binaries
prefer_binary=true
build_from_source=false
# Skip building from source
ignore_scripts=false
# Electron configuration
runtime=electron
target=32.1.2
disturl=https://electronjs.org/headers
# Don't fail on optional dependencies
optional=true
# Use production registry
registry=https://registry.npmjs.org/

115
package-lock.json generated
View File

@ -1,20 +1,18 @@
{
"name": "va-tracker",
"version": "0.0.0",
"version": "1.1.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "va-tracker",
"version": "0.0.0",
"version": "1.1.1",
"dependencies": {
"@reduxjs/toolkit": "^2.10.1",
"@tailwindcss/vite": "^4.1.16",
"active-win": "^7.2.0",
"axios": "^1.13.2",
"chalk": "^5.6.2",
"electron-store": "^11.0.2",
"get-windows": "^9.2.3",
"https": "^1.0.0",
"lucide-react": "^0.552.0",
"luxon": "^3.7.2",
@ -24,10 +22,8 @@
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.5",
"recharts": "^2.12.7",
"sharp": "^0.34.4",
"socket.io-client": "^4.8.1",
"tailwindcss": "^4.1.16",
"windowmanager": "^0.14.8"
"tailwindcss": "^4.1.16"
},
"devDependencies": {
"@playwright/test": "^1.47.2",
@ -43,9 +39,16 @@
"electron-builder": "^25.0.5",
"electron-rebuild": "^3.2.9",
"npm-run-all": "^4.1.5",
"rcedit": "^5.0.2",
"typescript": "^5.6.2",
"vite": "^5.4.7",
"vitest": "^2.1.1"
},
"optionalDependencies": {
"active-win": "^7.7.2",
"get-windows": "^9.2.3",
"sharp": "^0.34.5",
"windowmanager": "^0.14.8"
}
},
"node_modules/@babel/code-frame": {
@ -1144,6 +1147,7 @@
"resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz",
"integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==",
"license": "MIT",
"optional": true,
"engines": {
"node": ">=18"
}
@ -3086,6 +3090,7 @@
"resolved": "https://registry.npmjs.org/active-win/-/active-win-7.7.2.tgz",
"integrity": "sha512-rXIHbkl1w/li3Lr9jjhaw90hitTANGuVXO6h1atFrxLWVl2Rw0mOdqrrauxNe2W6xeQJ428vsy+1cYOFlx6Lpg==",
"license": "MIT",
"optional": true,
"engines": {
"node": ">=10"
},
@ -4574,6 +4579,54 @@
"node": ">= 8"
}
},
"node_modules/cross-spawn-windows-exe": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/cross-spawn-windows-exe/-/cross-spawn-windows-exe-1.2.0.tgz",
"integrity": "sha512-mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/malept"
},
{
"type": "tidelift",
"url": "https://tidelift.com/subscription/pkg/npm-cross-spawn-windows-exe?utm_medium=referral&utm_source=npm_fund"
}
],
"license": "Apache-2.0",
"dependencies": {
"@malept/cross-spawn-promise": "^1.1.0",
"is-wsl": "^2.2.0",
"which": "^2.0.2"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/cross-spawn-windows-exe/node_modules/@malept/cross-spawn-promise": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz",
"integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==",
"dev": true,
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/malept"
},
{
"type": "tidelift",
"url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund"
}
],
"license": "Apache-2.0",
"dependencies": {
"cross-spawn": "^7.0.1"
},
"engines": {
"node": ">= 10"
}
},
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
@ -6399,6 +6452,7 @@
"integrity": "sha512-rTO5ms7Qb5upkNI0UM49W6O1PAcosGlEMitOE2JGeo8yDgBy38xWhxg5GrpV/A+i1p71JogyIM/CZg5RZO0Wjw==",
"hasInstallScript": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=18.18"
},
@ -7372,6 +7426,22 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-docker": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
"integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
"license": "MIT",
"bin": {
"is-docker": "cli.js"
},
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-finalizationregistry": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
@ -7636,6 +7706,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-wsl": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
"integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"license": "MIT",
"dependencies": {
"is-docker": "^2.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/isarray": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
@ -9744,6 +9827,19 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/rcedit": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/rcedit/-/rcedit-5.0.2.tgz",
"integrity": "sha512-dgysxaeXZ4snLpPjn8aVtHvZDCx+aRcvZbaWBgl1poU6OPustMvOkj9a9ZqASQ6i5Y5szJ13LSvglEOwrmgUxA==",
"dev": true,
"license": "MIT",
"dependencies": {
"cross-spawn-windows-exe": "^1.1.0"
},
"engines": {
"node": ">= 22.12.0"
}
},
"node_modules/react": {
"version": "18.3.1",
"resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz",
@ -10507,6 +10603,7 @@
"integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==",
"hasInstallScript": true,
"license": "Apache-2.0",
"optional": true,
"dependencies": {
"@img/colour": "^1.0.0",
"detect-libc": "^2.1.2",
@ -10550,6 +10647,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
"integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
"license": "ISC",
"optional": true,
"bin": {
"semver": "bin/semver.js"
},
@ -12068,7 +12166,8 @@
"version": "0.14.8",
"resolved": "https://registry.npmjs.org/windowmanager/-/windowmanager-0.14.8.tgz",
"integrity": "sha512-USYABhvy9hce52h9p6h+8LSGhA0ypm/wuydnUm0nAaukPnWyfGByZs+eJAzfE4udVLDykIdZX3YzMk/lTHkgKw==",
"license": "MIT"
"license": "MIT",
"optional": true
},
"node_modules/wrap-ansi": {
"version": "7.0.0",

View File

@ -1,18 +1,18 @@
{
"name": "va-tracker",
"private": true,
"version": "0.0.0",
"version": "1.1.1",
"type": "module",
"main": "dist-electron/main.js",
"scripts": {
"dev": "npm-run-all --parallel dev:react dev:electron",
"dev": "npm-run-all --parallel transpile:electron dev:react dev:electron",
"dev:react": "vite",
"dev:electron": "npm run build && cross-env NODE_ENV=development electron --inspect=5858 .",
"prod:electron": "npm run build && cross-env NODE_ENV=production electron .",
"build": "tsc && vite build",
"preview": "vite preview",
"transpile:electron": "tsc --project src/electron/tsconfig.json",
"dist:mac": "npm run transpile:electron && npm run build && electron-builder --mac --arm64",
"dist:mac": "npm run transpile:electron && npm run build && electron-builder --mac --x64 --arm64",
"dist:win": "npm run transpile:electron && npm run build && electron-builder --win --x64",
"dist:linux": "npm run transpile:electron && npm run build && electron-builder --linux --x64",
"test:e2e": "playwright test",
@ -21,11 +21,9 @@
"dependencies": {
"@reduxjs/toolkit": "^2.10.1",
"@tailwindcss/vite": "^4.1.16",
"active-win": "^7.2.0",
"axios": "^1.13.2",
"chalk": "^5.6.2",
"electron-store": "^11.0.2",
"get-windows": "^9.2.3",
"https": "^1.0.0",
"lucide-react": "^0.552.0",
"luxon": "^3.7.2",
@ -35,11 +33,74 @@
"react-redux": "^9.2.0",
"react-router-dom": "^7.9.5",
"recharts": "^2.12.7",
"sharp": "^0.34.4",
"socket.io-client": "^4.8.1",
"tailwindcss": "^4.1.16",
"tailwindcss": "^4.1.16"
},
"optionalDependencies": {
"active-win": "^7.7.2",
"get-windows": "^9.2.3",
"sharp": "^0.34.5",
"windowmanager": "^0.14.8"
},
"build": {
"appId": "com.vatracker.app",
"productName": "VA Tracker",
"npmRebuild": false,
"buildDependenciesFromSource": false,
"nodeGypRebuild": false,
"directories": {
"output": "release",
"buildResources": "build"
},
"icon": "build/icon.ico",
"files": [
"dist-electron/**/*",
"dist-react/**/*",
"package.json"
],
"extraResources": [
{
"from": "dist-electron",
"to": "dist-electron"
},
{
"from": "src/assets",
"to": "assets"
}
],
"mac": {
"target": ["dmg"],
"icon": "build/icon.icns",
"extendInfo": {
"LSUIElement": false,
"LSBackgroundOnly": false
}
},
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
}
],
"signAndEditExecutable": true,
"signingHashAlgorithms": [],
"verifyUpdateCodeSignature": false
},
"nsis": {
"oneClick": true,
"perMachine": false,
"createDesktopShortcut": "always",
"createStartMenuShortcut": true,
"runAfterFinish": true,
"installerIcon": "build/icon.ico",
"uninstallerIcon": "build/icon.ico",
"installerHeaderIcon": "build/icon.ico",
"artifactName": "${productName}-Setup-${version}.${ext}"
}
},
"devDependencies": {
"@playwright/test": "^1.47.2",
"@types/luxon": "^3.7.1",
@ -54,8 +115,9 @@
"electron-builder": "^25.0.5",
"electron-rebuild": "^3.2.9",
"npm-run-all": "^4.1.5",
"rcedit": "^5.0.2",
"typescript": "^5.6.2",
"vite": "^5.4.7",
"vitest": "^2.1.1"
}
}
}

View File

@ -23,8 +23,9 @@ function resolveIcon() {
console.log("Line 24", path.join(__dirname, "..", "assets", "icons", "appIcon.ico"))
// PRODUCTION mode → inside dist-electron
return path.join(__dirname, "..", "assets", "icons", "appIcon.ico");
const prodPath = path.join(process.resourcesPath, "assets", "icons", "appIcon.ico");
console.log("PROD Icon Path:", prodPath);
return prodPath;
}
// ---------------------------
@ -76,6 +77,11 @@ app.on("ready", async () => {
path.join(__dirname, "../assets/splash.html")
);
// Create the main window
const win = new BrowserWindow({
width: 500,
@ -88,8 +94,8 @@ app.on("ready", async () => {
alwaysOnTop: true,
skipTaskbar: true,
autoHideMenuBar: true,
frame: process.platform === "darwin" ? false : true,
show: false, // speed improvement
frame: true,
show: false,
icon: resolveIcon(),
webPreferences: {
devTools: true,
@ -99,11 +105,6 @@ app.on("ready", async () => {
},
});
win.setAlwaysOnTop(true, 'screen-saver');
win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true });
win.setFullScreenable(false);
mainWindow = win;
// ------------------------------------