File tree Expand file tree Collapse file tree 1 file changed +28
-1
lines changed
Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -8,10 +8,37 @@ const availableLocales = computed(() =>
88 locales .value .map (l => (typeof l === ' string' ? { code: l , name: l } : l )),
99)
1010
11+ /**
12+ * Check if it's safe to navigate back (previous page was same origin).
13+ * Uses document.referrer to verify the user came from this site.
14+ */
15+ function canGoBack(): boolean {
16+ if (import .meta .server ) return false
17+ if (window .history .length <= 1 ) return false
18+ const referrer = document .referrer
19+ if (! referrer ) return false
20+ try {
21+ return new URL (referrer ).origin === window .location .origin
22+ } catch {
23+ return false
24+ }
25+ }
26+
1127function goBack() {
12- router .back ()
28+ if (canGoBack ()) {
29+ router .back ()
30+ } else {
31+ router .push (' /' )
32+ }
1333}
1434
35+ onKeyStroke (' Escape' , e => {
36+ const target = e .target as HTMLElement
37+ if (! [' INPUT' , ' SELECT' , ' TEXTAREA' ].includes (target ?.tagName )) {
38+ goBack ()
39+ }
40+ })
41+
1542useSeoMeta ({
1643 title: ' Settings - npmx' ,
1744})
You can’t perform that action at this time.
0 commit comments