Skip to content

Commit ad277ed

Browse files
committed
Fix line-button issue after file selection in file tree
1 parent bb6377d commit ad277ed

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

templates/repo/view_file.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
{{end}}
115115
</div>
116116
{{else if .FileSize}}
117-
<table>
117+
<table data-global-init="initRepoCodeView">
118118
<tbody>
119119
{{range $idx, $code := .FileContent}}
120120
{{$line := Eval $idx "+" 1}}

web_src/js/features/repo-code.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {svg} from '../svg.ts';
22
import {createTippy} from '../modules/tippy.ts';
33
import {toAbsoluteUrl} from '../utils.ts';
44
import {addDelegatedEventListener} from '../utils/dom.ts';
5+
import {registerGlobalInitFunc} from '../modules/observer.ts';
56

67
function changeHash(hash: string) {
78
if (window.history.pushState) {
@@ -110,19 +111,21 @@ function showLineButton() {
110111
}
111112

112113
export function initRepoCodeView() {
113-
if (!document.querySelector('.code-view .lines-num')) return;
114-
115-
let selRangeStart: string;
116-
addDelegatedEventListener(document, 'click', '.lines-num span', (el: HTMLElement, e: KeyboardEvent) => {
117-
if (!selRangeStart || !e.shiftKey) {
118-
selRangeStart = el.getAttribute('id');
119-
selectRange(selRangeStart);
120-
} else {
121-
const selRangeStop = el.getAttribute('id');
122-
selectRange(`${selRangeStart}-${selRangeStop}`);
123-
}
124-
window.getSelection().removeAllRanges();
125-
showLineButton();
114+
registerGlobalInitFunc('initRepoCodeView', (el: HTMLElement) => {
115+
if (!el.querySelector('.lines-num')) return;
116+
117+
let selRangeStart: string;
118+
addDelegatedEventListener(el, 'click', '.lines-num span', (el: HTMLElement, e: KeyboardEvent) => {
119+
if (!selRangeStart || !e.shiftKey) {
120+
selRangeStart = el.getAttribute('id');
121+
selectRange(selRangeStart);
122+
} else {
123+
const selRangeStop = el.getAttribute('id');
124+
selectRange(`${selRangeStart}-${selRangeStop}`);
125+
}
126+
window.getSelection().removeAllRanges();
127+
showLineButton();
128+
});
126129
});
127130

128131
const onHashChange = () => {

0 commit comments

Comments
 (0)