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. } }