mirror of
https://github.com/BetterSEQTA/BetterSEQTA-Plus.git
synced 2026-06-16 08:27:07 +00:00
73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
import type { SettingsState } from "@/types/storage";
|
|
|
|
function detectLowEndDevice(): boolean {
|
|
const lowCoreCount =
|
|
navigator.hardwareConcurrency && navigator.hardwareConcurrency < 4;
|
|
const lowMemory =
|
|
(navigator as Navigator & { deviceMemory?: number }).deviceMemory != null &&
|
|
(navigator as Navigator & { deviceMemory?: number }).deviceMemory! <= 2;
|
|
|
|
return !!(lowCoreCount || lowMemory);
|
|
}
|
|
|
|
/** Default core settings for a fresh profile (`SettingsState` shape). */
|
|
export function getDefaultSettingsState(): SettingsState {
|
|
const isLowEndDevice = detectLowEndDevice();
|
|
|
|
return {
|
|
onoff: true,
|
|
animatedbk: true,
|
|
bksliderinput: "50",
|
|
transparencyEffects: false,
|
|
lessonalert: true,
|
|
defaultmenuorder: [],
|
|
menuitems: {
|
|
assessments: { toggle: true },
|
|
courses: { toggle: true },
|
|
dashboard: { toggle: true },
|
|
documents: { toggle: true },
|
|
forums: { toggle: true },
|
|
goals: { toggle: true },
|
|
home: { toggle: true },
|
|
messages: { toggle: true },
|
|
myed: { toggle: true },
|
|
news: { toggle: true },
|
|
notices: { toggle: true },
|
|
portals: { toggle: true },
|
|
reports: { toggle: true },
|
|
settings: { toggle: true },
|
|
timetable: { toggle: true },
|
|
welcome: { toggle: true },
|
|
},
|
|
menuorder: [],
|
|
subjectfilters: {},
|
|
selectedTheme: "",
|
|
selectedColor:
|
|
"linear-gradient(40deg, rgba(201,61,0,1) 0%, RGBA(170, 5, 58, 1) 100%)",
|
|
originalSelectedColor: "",
|
|
DarkMode: true,
|
|
animations: !isLowEndDevice,
|
|
assessmentsAverage: false,
|
|
defaultPage: "home",
|
|
shortcuts: [
|
|
{ name: "Outlook", enabled: true },
|
|
{ name: "Office", enabled: true },
|
|
{ name: "Google", enabled: true },
|
|
],
|
|
customshortcuts: [],
|
|
lettergrade: false,
|
|
notificationCollector: false,
|
|
newsSource: "australia",
|
|
iconOnlySidebar: false,
|
|
adaptiveThemeColour: false,
|
|
adaptiveThemeGradient: false,
|
|
adaptiveThemeColourTransition: true,
|
|
themeOfTheMonthDisabled: false,
|
|
autoCloudSettingsSync: true,
|
|
selectedFont: "rubik",
|
|
timeFormat: "24",
|
|
privacyStatementShown: false,
|
|
bsCloudAutoSyncAnnouncementShown: false,
|
|
};
|
|
}
|