mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 03:55:59 +00:00
* fix: fixed height on modal * fix: conditional auto padding being applied on user avatars * feat: allow ungrouped to be dragged * feat: add drag handle to resize num items in jump in * qa * feat: add context menu submenus * feat: hook up icon editing in sub menu * fix: breadcrumb and sidebar not matching * fix: bring back signal icon for ping and players online * feat: add compact mode for library * smaller checkmark * pnpm prepr * feat: bring back loader/game version sort * add loader symbols * refactor: compact mode with sync'd app settings * pnpm prepr * move loaders up * qa * feat: exclude loaders from randomizing
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import { reactive, ref } from 'vue'
|
|
|
|
export const DEFAULT_FEATURE_FLAGS = {
|
|
project_background: false,
|
|
page_path: false,
|
|
worlds_in_home: true,
|
|
server_project_qa: false,
|
|
show_version_environment_column: false,
|
|
server_ram_as_bytes_always_on: false,
|
|
always_show_app_controls: false,
|
|
skip_non_essential_warnings: false,
|
|
skip_unknown_pack_warning: false,
|
|
pride_fundraiser: true,
|
|
i18n_debug: false,
|
|
show_instance_play_time: true,
|
|
compact_instance_cards: false,
|
|
advanced_filters_collapsed: true,
|
|
always_show_copy_details: false,
|
|
hide_installed_modpacks: false,
|
|
friends_active_collapsed: false,
|
|
friends_online_collapsed: false,
|
|
friends_offline_collapsed: true,
|
|
friends_pending_collapsed: true,
|
|
dismissed_photosensitivity_filter_warning: false,
|
|
}
|
|
|
|
export type FeatureFlag = keyof typeof DEFAULT_FEATURE_FLAGS
|
|
type FeatureFlags = Record<FeatureFlag, boolean>
|
|
|
|
const syncBehaviorAcrossDevices = ref(false)
|
|
const featureFlags = reactive<FeatureFlags>({ ...DEFAULT_FEATURE_FLAGS })
|
|
|
|
function setBehaviorSyncAcrossDevices(enabled: boolean): void {
|
|
syncBehaviorAcrossDevices.value = enabled
|
|
}
|
|
|
|
function getFeatureFlag(key: FeatureFlag): boolean {
|
|
return featureFlags[key] ?? DEFAULT_FEATURE_FLAGS[key]
|
|
}
|
|
|
|
const appSettings = reactive({
|
|
syncBehaviorAcrossDevices,
|
|
hideNametagSkinsPage: false,
|
|
toggleSidebar: false,
|
|
devMode: false,
|
|
featureFlags,
|
|
setBehaviorSyncAcrossDevices,
|
|
getFeatureFlag,
|
|
})
|
|
|
|
export function useAppSettings() {
|
|
return appSettings
|
|
}
|