added CRUD for Projects,
added set project for report
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
const DRAG_DROP_STORAGE_KEY = "bugreport_drag_drop_enabled";
|
||||
const DRAG_DROP_MEDIA_QUERY = "(max-width: 768px), (any-pointer: coarse)";
|
||||
|
||||
let sessionDragDropPreference = null;
|
||||
|
||||
function getStorage() {
|
||||
try {
|
||||
if (typeof window !== "undefined" && window.localStorage) {
|
||||
return window.localStorage;
|
||||
}
|
||||
} catch (error) {
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function getDragDropMediaQuery() {
|
||||
if (typeof window === "undefined" || typeof window.matchMedia !== "function") {
|
||||
return null;
|
||||
}
|
||||
return window.matchMedia(DRAG_DROP_MEDIA_QUERY);
|
||||
}
|
||||
|
||||
export function getDragDropPreference() {
|
||||
if (sessionDragDropPreference != null) return sessionDragDropPreference;
|
||||
|
||||
let storage = getStorage();
|
||||
if (storage != null) {
|
||||
try {
|
||||
let storedPreference = storage.getItem(DRAG_DROP_STORAGE_KEY);
|
||||
if (storedPreference === "true") return true;
|
||||
if (storedPreference === "false") return false;
|
||||
} catch (error) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
export function getDragDropEnabled(mediaQuery = null) {
|
||||
let preference = getDragDropPreference();
|
||||
if (preference != null) return preference;
|
||||
|
||||
if (mediaQuery == null) mediaQuery = getDragDropMediaQuery();
|
||||
return mediaQuery == null || !mediaQuery.matches;
|
||||
}
|
||||
|
||||
export function setDragDropEnabled(enabled) {
|
||||
sessionDragDropPreference = enabled;
|
||||
let storage = getStorage();
|
||||
if (storage == null) return;
|
||||
|
||||
try {
|
||||
storage.setItem(DRAG_DROP_STORAGE_KEY, String(enabled));
|
||||
} catch (error) {
|
||||
// The in-memory preference still applies until the page is reloaded.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user