mirror of
https://github.com/wanderer-industries/wanderer
synced 2025-12-12 10:45:54 +00:00
Initial commit
This commit is contained in:
37
assets/js/hooks/Mapper/utils/contextManager.ts
Normal file
37
assets/js/hooks/Mapper/utils/contextManager.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { ContextMenu } from 'primereact/contextmenu';
|
||||
|
||||
class ContextManager {
|
||||
private prev: ContextMenu | null = null;
|
||||
private prevId: string | null = null;
|
||||
|
||||
next(id: string | null, ctx: ContextMenu | null) {
|
||||
if (id === null && this.prev !== null) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
this.prev.hide();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.prevId === id) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.prev !== null && this.prevId !== id) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
this.prev.hide();
|
||||
}
|
||||
|
||||
this.prev = ctx;
|
||||
this.prevId = id;
|
||||
}
|
||||
reset() {
|
||||
if (this.prev != null) {
|
||||
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
||||
// @ts-expect-error
|
||||
this.prev.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const ctxManager = new ContextManager();
|
||||
Reference in New Issue
Block a user