feat: show in file changelog if file is in .gitignore

This commit is contained in:
shumadrid 2025-04-15 11:07:36 +02:00
parent 8f39e82434
commit b37d52b7ea
2 changed files with 148 additions and 83 deletions

187
package-lock.json generated
View file

@ -348,9 +348,9 @@
}
},
"node_modules/@cspell/dict-companies": {
"version": "3.1.14",
"resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.14.tgz",
"integrity": "sha512-iqo1Ce4L7h0l0GFSicm2wCLtfuymwkvgFGhmu9UHyuIcTbdFkDErH+m6lH3Ed+QuskJlpQ9dM7puMIGqUlVERw==",
"version": "3.1.15",
"resolved": "https://registry.npmjs.org/@cspell/dict-companies/-/dict-companies-3.1.15.tgz",
"integrity": "sha512-vnGYTJFrqM9HdtgpZFOThFTjlPyJWqPi0eidMKyZxMKTHhP7yg6mD5X9WPEPvfiysmJYMnA6KKYQEBqoKFPU9g==",
"dev": true,
"license": "MIT"
},
@ -425,9 +425,9 @@
"license": "MIT"
},
"node_modules/@cspell/dict-en_us": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.0.tgz",
"integrity": "sha512-TEfVT2NwvI9k1/ECjuC7GbULxenjJAbTLWMri1eMRk3mRGtqg5j0XzvvNRFuJWq8X48MdGVjsD+ZVI/VR94+eQ==",
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-4.4.1.tgz",
"integrity": "sha512-OqIImYIrTAg+lpS+1v/KtjI2kyiw1bD3FqGbuXUxpAc+e+pWluW7rPjsJCxTRlruKQMSCgQeK6N054XnxHdkDQ==",
"dev": true,
"license": "MIT"
},
@ -613,9 +613,9 @@
"license": "MIT"
},
"node_modules/@cspell/dict-npm": {
"version": "5.1.34",
"resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.1.34.tgz",
"integrity": "sha512-UrUYqRQX864Cx9QJkg7eEIxmjYGqcje+x1j7bzl+a3jCKwT6jm+p0off6VEOf3EReHP0dWUSYO3Q0+pLL/N+FQ==",
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@cspell/dict-npm/-/dict-npm-5.2.0.tgz",
"integrity": "sha512-kTUdbSE8SuIMKMlASMbI8/SEwv3EmI8eBcwdrtu4PHA+XVx+8JvQCB5fcWK9mn/94Y7LQ1kDIm+yfAZfwopY0A==",
"dev": true,
"license": "MIT"
},
@ -1611,6 +1611,34 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@floating-ui/core": {
"version": "1.6.9",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
"integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@floating-ui/utils": "^0.2.9"
}
},
"node_modules/@floating-ui/dom": {
"version": "1.6.13",
"resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz",
"integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==",
"dev": true,
"license": "MIT",
"dependencies": {
"@floating-ui/core": "^1.6.0",
"@floating-ui/utils": "^0.2.9"
}
},
"node_modules/@floating-ui/utils": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz",
"integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==",
"dev": true,
"license": "MIT"
},
"node_modules/@guardian/eslint-plugin-tsdoc-required": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@guardian/eslint-plugin-tsdoc-required/-/eslint-plugin-tsdoc-required-0.1.3.tgz",
@ -2660,16 +2688,16 @@
}
},
"node_modules/@pkgr/core": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.2.tgz",
"integrity": "sha512-25L86MyPvnlQoX2MTIV2OiUcb6vJ6aRbFa9pbwByn95INKD5mFH2smgjDhq+fwJoqAgvgbdJLj6Tz7V9X5CFAQ==",
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.3.tgz",
"integrity": "sha512-yMV8bb9prWI21N6FsrnPCbhoYb8UUvYCDGoSvPHBloVC095Ef2ker43hzXkJ6TpJPw53S8FeFYkARa7GGIGwxg==",
"dev": true,
"license": "MIT",
"engines": {
"node": "^12.20.0 || ^14.18.0 || >=16.0.0"
},
"funding": {
"url": "https://opencollective.com/unts"
"url": "https://opencollective.com/pkgr"
}
},
"node_modules/@rtsao/scc": {
@ -3019,9 +3047,9 @@
"license": "MIT"
},
"node_modules/@types/react": {
"version": "19.1.1",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.1.tgz",
"integrity": "sha512-ePapxDL7qrgqSF67s0h9m412d9DbXyC1n59O2st+9rjuuamWsZuD2w55rqY12CbzsZ7uVXb5Nw0gEp9Z8MMutQ==",
"version": "19.1.2",
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz",
"integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -3084,17 +3112,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.1.tgz",
"integrity": "sha512-ba0rr4Wfvg23vERs3eB+P3lfj2E+2g3lhWcCVukUuhtcdUx5lSIFZlGFEBHKr+3zizDa/TvZTptdNHVZWAkSBg==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.30.1.tgz",
"integrity": "sha512-v+VWphxMjn+1t48/jO4t950D6KR8JaJuNXzi33Ve6P8sEmPr5k6CEXjdGwT6+LodVnEa91EQCtwjWNUCPweo+Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "8.29.1",
"@typescript-eslint/type-utils": "8.29.1",
"@typescript-eslint/utils": "8.29.1",
"@typescript-eslint/visitor-keys": "8.29.1",
"@typescript-eslint/scope-manager": "8.30.1",
"@typescript-eslint/type-utils": "8.30.1",
"@typescript-eslint/utils": "8.30.1",
"@typescript-eslint/visitor-keys": "8.30.1",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@ -3114,16 +3142,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.1.tgz",
"integrity": "sha512-zczrHVEqEaTwh12gWBIJWj8nx+ayDcCJs06yoNMY0kwjMWDM6+kppljY+BxWI06d2Ja+h4+WdufDcwMnnMEWmg==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.30.1.tgz",
"integrity": "sha512-H+vqmWwT5xoNrXqWs/fesmssOW70gxFlgcMlYcBaWNPIEWDgLa4W9nkSPmhuOgLnXq9QYgkZ31fhDyLhleCsAg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/scope-manager": "8.29.1",
"@typescript-eslint/types": "8.29.1",
"@typescript-eslint/typescript-estree": "8.29.1",
"@typescript-eslint/visitor-keys": "8.29.1",
"@typescript-eslint/scope-manager": "8.30.1",
"@typescript-eslint/types": "8.30.1",
"@typescript-eslint/typescript-estree": "8.30.1",
"@typescript-eslint/visitor-keys": "8.30.1",
"debug": "^4.3.4"
},
"engines": {
@ -3139,14 +3167,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.1.tgz",
"integrity": "sha512-2nggXGX5F3YrsGN08pw4XpMLO1Rgtnn4AzTegC2MDesv6q3QaTU5yU7IbS1tf1IwCR0Hv/1EFygLn9ms6LIpDA==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.30.1.tgz",
"integrity": "sha512-+C0B6ChFXZkuaNDl73FJxRYT0G7ufVPOSQkqkpM/U198wUwUFOtgo1k/QzFh1KjpBitaK7R1tgjVz6o9HmsRPg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.29.1",
"@typescript-eslint/visitor-keys": "8.29.1"
"@typescript-eslint/types": "8.30.1",
"@typescript-eslint/visitor-keys": "8.30.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -3157,14 +3185,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.1.tgz",
"integrity": "sha512-DkDUSDwZVCYN71xA4wzySqqcZsHKic53A4BLqmrWFFpOpNSoxX233lwGu/2135ymTCR04PoKiEEEvN1gFYg4Tw==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.30.1.tgz",
"integrity": "sha512-64uBF76bfQiJyHgZISC7vcNz3adqQKIccVoKubyQcOnNcdJBvYOILV1v22Qhsw3tw3VQu5ll8ND6hycgAR5fEA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "8.29.1",
"@typescript-eslint/utils": "8.29.1",
"@typescript-eslint/typescript-estree": "8.30.1",
"@typescript-eslint/utils": "8.30.1",
"debug": "^4.3.4",
"ts-api-utils": "^2.0.1"
},
@ -3181,9 +3209,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.1.tgz",
"integrity": "sha512-VT7T1PuJF1hpYC3AGm2rCgJBjHL3nc+A/bhOp9sGMKfi5v0WufsX/sHCFBfNTx2F+zA6qBc/PD0/kLRLjdt8mQ==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.30.1.tgz",
"integrity": "sha512-81KawPfkuulyWo5QdyG/LOKbspyyiW+p4vpn4bYO7DM/hZImlVnFwrpCTnmNMOt8CvLRr5ojI9nU1Ekpw4RcEw==",
"dev": true,
"license": "MIT",
"engines": {
@ -3195,14 +3223,14 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.1.tgz",
"integrity": "sha512-l1enRoSaUkQxOQnbi0KPUtqeZkSiFlqrx9/3ns2rEDhGKfTa+88RmXqedC1zmVTOWrLc2e6DEJrTA51C9iLH5g==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.30.1.tgz",
"integrity": "sha512-kQQnxymiUy9tTb1F2uep9W6aBiYODgq5EMSk6Nxh4Z+BDUoYUSa029ISs5zTzKBFnexQEh71KqwjKnRz58lusQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.29.1",
"@typescript-eslint/visitor-keys": "8.29.1",
"@typescript-eslint/types": "8.30.1",
"@typescript-eslint/visitor-keys": "8.30.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@ -3222,16 +3250,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.1.tgz",
"integrity": "sha512-QAkFEbytSaB8wnmB+DflhUPz6CLbFWE2SnSCrRMEa+KnXIzDYbpsn++1HGvnfAsUY44doDXmvRkO5shlM/3UfA==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.30.1.tgz",
"integrity": "sha512-T/8q4R9En2tcEsWPQgB5BQ0XJVOtfARcUvOa8yJP3fh9M/mXraLxZrkCfGb6ChrO/V3W+Xbd04RacUEqk1CFEQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "8.29.1",
"@typescript-eslint/types": "8.29.1",
"@typescript-eslint/typescript-estree": "8.29.1"
"@typescript-eslint/scope-manager": "8.30.1",
"@typescript-eslint/types": "8.30.1",
"@typescript-eslint/typescript-estree": "8.30.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -3246,13 +3274,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.1.tgz",
"integrity": "sha512-RGLh5CRaUEf02viP5c1Vh1cMGffQscyHe7HPAzGpfmfflFg1wUz2rYxd+OZqwpeypYvZ8UxSxuIpF++fmOzEcg==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.30.1.tgz",
"integrity": "sha512-aEhgas7aJ6vZnNFC7K4/vMGDGyOiqWcYZPpIWrTKuTAlsvDNKy2GFDqh9smL+iq069ZvR0YzEeq0B8NJlLzjFA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.29.1",
"@typescript-eslint/types": "8.30.1",
"eslint-visitor-keys": "^4.2.0"
},
"engines": {
@ -5124,9 +5152,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.5.136",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz",
"integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==",
"version": "1.5.137",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.137.tgz",
"integrity": "sha512-/QSJaU2JyIuTbbABAo/crOs+SuAZLS+fVVS10PVrIT9hrRkmZl8Hb0xPSkKRUUWHQtYzXHpQUW3Dy5hwMzGZkA==",
"dev": true,
"license": "ISC"
},
@ -8983,13 +9011,14 @@
}
},
"node_modules/obsidian-dev-utils": {
"version": "26.1.2",
"resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-26.1.2.tgz",
"integrity": "sha512-FaYuMyHfxqU8a57OJwc6WVIZWkH7iGJBZ+wLW0YsojMP9qFK86SxSy3eBat7fBVVC3euvui9RpBPI2GsS0Jh0Q==",
"version": "26.2.0",
"resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-26.2.0.tgz",
"integrity": "sha512-uGYS9KZY/rsF0ZRU6D5SM1O2ItGWa+EE+NydAWCYn7YZkslvv8URqCGik1lt2SZjJH69wu3fGNJbC/wVonhpqg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint/js": "^9.24.0",
"@floating-ui/dom": "^1.6.13",
"@guardian/eslint-plugin-tsdoc-required": "^0.1.3",
"@lezer/common": "^1.2.3",
"@stylistic/eslint-plugin": "^4.2.0",
@ -9004,10 +9033,10 @@
"@types/path-browserify": "^1.0.3",
"@types/picomatch": "^4.0.0",
"@types/pug": "^2.0.10",
"@types/react": "^19.1.1",
"@types/react": "^19.1.2",
"@types/shell-quote": "^1.7.5",
"@typescript-eslint/eslint-plugin": "^8.29.1",
"@typescript-eslint/parser": "^8.29.1",
"@typescript-eslint/eslint-plugin": "^8.30.1",
"@typescript-eslint/parser": "^8.30.1",
"better-typescript-lib": "^2.11.0",
"commander": "^13.1.0",
"compare-versions": "^6.1.1",
@ -9021,7 +9050,7 @@
"esbuild-svelte": "^0.9.2",
"eslint": "^9.24.0",
"eslint-import-resolver-typescript": "^4.3.2",
"eslint-plugin-import-x": "^4.10.2",
"eslint-plugin-import-x": "^4.10.3",
"eslint-plugin-jsdoc": "^50.6.9",
"eslint-plugin-modules-newlines": "^0.0.7",
"eslint-plugin-perfectionist": "^4.11.0",
@ -9045,12 +9074,12 @@
"remark-wiki-link": "^2.0.1",
"sass": "^1.86.3",
"shell-quote": "^1.8.2",
"svelte-check": "^4.1.5",
"svelte-check": "^4.1.6",
"svelte-preprocess": "^6.0.3",
"tsx": "^4.19.3",
"type-fest": "^4.39.1",
"typescript": "^5.8.3",
"typescript-eslint": "^8.29.1"
"typescript-eslint": "^8.30.1"
},
"bin": {
"obsidian-dev-utils": "dist/bin/cli.cjs"
@ -11364,9 +11393,9 @@
}
},
"node_modules/svelte": {
"version": "5.26.2",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.26.2.tgz",
"integrity": "sha512-e2TEcGK2YKVwDWYy5OsptVclYgDvfY1E/8IzPiOq63uG/GDo/j5VUYTC9EinQNraoZalbMWN+5f5TYC1QlAqOw==",
"version": "5.27.0",
"resolved": "https://registry.npmjs.org/svelte/-/svelte-5.27.0.tgz",
"integrity": "sha512-Uai13Ydt1ZE+bUHme6b9U38PCYVNCqBRoBMkUKbFbKiD7kHWjdUUrklYAQZJxyKK81qII4mrBwe/YmvEMSlC9w==",
"dev": true,
"license": "MIT",
"dependencies": {
@ -11878,15 +11907,15 @@
}
},
"node_modules/typescript-eslint": {
"version": "8.29.1",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.1.tgz",
"integrity": "sha512-f8cDkvndhbQMPcysk6CUSGBWV+g1utqdn71P5YKwMumVMOG/5k7cHq0KyG4O52nB0oKS4aN2Tp5+wB4APJGC+w==",
"version": "8.30.1",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.30.1.tgz",
"integrity": "sha512-D7lC0kcehVH7Mb26MRQi64LMyRJsj3dToJxM1+JVTl53DQSV5/7oUGWQLcKl1C1KnoVHxMMU2FNQMffr7F3Row==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "8.29.1",
"@typescript-eslint/parser": "8.29.1",
"@typescript-eslint/utils": "8.29.1"
"@typescript-eslint/eslint-plugin": "8.30.1",
"@typescript-eslint/parser": "8.30.1",
"@typescript-eslint/utils": "8.30.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"

View file

@ -3,6 +3,7 @@
import type { EventRef } from 'obsidian';
import { INFO_TOOLTIP_ICON } from 'constants.ts';
import { runCheckIgnore } from 'core/gitOperations/runCheckIgnore.ts';
import { setIcon } from 'obsidian';
import { onDestroy, untrack } from 'svelte';
import { LoaderState } from 'svelte-infinite';
@ -40,7 +41,7 @@
const loaderState = new LoaderState();
let intervalAdjective = $state<string>();
const changelogState = $derived.by(() => {
let changelogState = $derived.by(() => {
if (!changelogManager) {
return FileChangelogState.Initializing;
}
@ -61,10 +62,43 @@
if (!plugin.cachedActiveGitFile) {
return FileChangelogState.NoMarkdownFileOpen;
}
return FileChangelogState.EmptyHistory;
//
untrack(() => {
// eslint-disable-next-line @typescript-eslint/no-floating-promises
checkFileInGitIgnore();
});
// Set a loading state while checkFileInGitIgnore is in progress
return FileChangelogState.Recomputing;
});
// Const fileInGitIgnore = $state<boolean>();
// If the file git log yielded no entries, check if it's because the file is ignored by git, or if it's just a new file with no history. Should be instant so no visible UI mismatch.
async function checkFileInGitIgnore(): Promise<void> {
if (!plugin.cachedActiveGitFile || !changelogManager) {
return;
}
const abortSignal = changelogManager.taskManager.getAbortSignal();
const cachedActiveGitFile = plugin.cachedActiveGitFile;
await changelogManager.taskManager.enqueueAndWait(async () => {
try {
const git = await plugin.getGit();
const isIgnored = await runCheckIgnore({
abortSignal,
activeGitFile: cachedActiveGitFile,
git
});
changelogState = isIgnored
? FileChangelogState.GitIgnoredFileOpen
: FileChangelogState.EmptyHistory;
} catch {
changelogState = FileChangelogState.EmptyHistory;
}
});
}
let fileChangelogSettingsChangedReference: EventRef;
headChangeReference = plugin.app.workspace.on(
@ -175,7 +209,7 @@
{:else if changelogState === FileChangelogState.NoMarkdownFileOpen}
<div class="pane-empty">No file opened.</div>
{:else if changelogState === FileChangelogState.EmptyHistory}
<div class=" pane-empty">
<div class="pane-empty">
<div>File has no Git history.</div>
<div class="git-changelog-row">
<div
@ -192,6 +226,8 @@
>
</div>
</div>
{:else if changelogState === FileChangelogState.GitIgnoredFileOpen}
<div class="pane-empty">File is in .gitignore.</div>
{/if}
<!-- if changelogState === FileChangelogState.Initializing, show nothing -->
</div>