@@ -29,7 +29,6 @@ import FileUtils from './utils/FileUtils';
29
29
import LinkProvider from ' ./providers/components/LinkProvider' ;
30
30
import LinkImpl from ' ./r2mm/component_override/LinkImpl' ;
31
31
import FsProvider from ' ./providers/generic/file/FsProvider' ;
32
- import NodeFs from ' ./providers/generic/file/NodeFs' ;
33
32
import { DataFolderProvider } from ' ./providers/ror2/system/DataFolderProvider' ;
34
33
import { DataFolderProviderImpl } from ' ./r2mm/system/DataFolderProviderImpl' ;
35
34
import InteractionProvider from ' ./providers/ror2/system/InteractionProvider' ;
@@ -48,8 +47,9 @@ import { provideStoreImplementation } from './providers/generic/store/StoreProvi
48
47
import baseStore from ' ./store' ;
49
48
import { getCurrentInstance , onMounted , ref , watchEffect } from ' vue' ;
50
49
import { useUtilityComposable } from ' ./components/composables/UtilityComposable' ;
51
- import { Dark , useQuasar } from ' quasar' ;
50
+ import { useQuasar } from ' quasar' ;
52
51
import { NodeFsImplementation } from ' src/providers/node/fs/NodeFsImplementation' ;
52
+ import contextMenu from ' src/providers/node/context_menu/context_menu' ;
53
53
54
54
const store = baseStore ;
55
55
provideStoreImplementation (() => store );
@@ -139,6 +139,23 @@ onMounted(async () => {
139
139
140
140
watchEffect (() => {
141
141
document .documentElement .classList .toggle (' html--dark' , quasar .dark .isActive );
142
+ });
143
+
144
+ document .addEventListener (' contextmenu' , e => {
145
+ if (e .target ) {
146
+ const target = e .target as HTMLElement ;
147
+ switch (true ) {
148
+ case target instanceof HTMLInputElement : {
149
+ contextMenu .showContextMenu ({ readonly: false });
150
+ break ;
151
+ }
152
+ case [' code' , ' pre' ].includes (target .tagName .toLowerCase ()): {
153
+ contextMenu .showContextMenu ({ readonly: true });
154
+ break ;
155
+ }
156
+ default : { break ; }
157
+ }
158
+ }
142
159
})
143
160
</script >
144
161
0 commit comments