import config from "@config" export default { id: "general", icon: "Command", label: "General", group: "app", order: 0, settings: [ { id: "app:language", storaged: true, group: "general", component: "Select", icon: "MdTranslate", title: "Language", description: "Choose a language for the application", props: { options: config.i18n.languages.map((language) => { return { label: language.name, value: language.locale } }) }, emitEvent: "app:language_changes", }, { id: "haptics:enabled", storaged: true, group: "general", component: "Switch", icon: "MdVibration", title: "Haptic Feedback", description: "Enable haptic feedback on touch events.", desktop: false }, { id: "longPressDelay", storaged: true, group: "general", component: "Slider", icon: "MdTimer", title: "Long press delay", description: "Set the delay before long press trigger is activated.", props: { min: 300, max: 2000, step: 100, marks: { 300: "0.3s", 600: "0.6s", 1000: "1s", 1500: "1.5s", 2000: "2s", } } }, { id: "clear_internal_storage", group: "general", component: "Button", icon: "MdDelete", title: "Clear internal storage", description: "Clear all the data stored in the internal storage, including your current session. It will not affect the data stored in the cloud.", props: { danger: true, children: "Clear", onClick: () => app.maintenance.clearInternalStorage() }, noUpdate: true, }, { id: "app:lpm", group: "general", component: "Switch", icon: "MdSlowMotionVideo", title: "Low performance mode", description: "Enable low performance mode disabling all the animations and secondary features, boosting the app performance.", emitEvent: "app:lpm_changed", props: { disabled: true }, storaged: true, experimental: true, disabled: true, }, { id: "ui.effects", storaged: true, group: "ui.sounds", component: "Switch", icon: "MdVolumeUp", title: "UI effects", description: "Enable the UI effects.", mobile: false, }, { id: "ui.general_volume", storaged: true, group: "ui.sounds", component: "Slider", icon: "MdVolumeUp", title: "UI volume", description: "Set the volume of the app sounds.", props: { tipFormatter: (value) => { return `${value}%` }, min: 0, max: 100, step: 10, }, emitEvent: "sfx:test", mobile: false, }, { id: "sfx:notifications_feedback", storaged: true, group: "notifications", component: "Switch", icon: "MdVolumeUp", title: "Notifications Sound", description: "Play a sound when a notification is received.", }, { id: "haptics:notifications_vibrate", storaged: true, group: "notifications", component: "Switch", icon: "MdVibration", title: "Vibration", description: "Vibrate the device when a notification is received.", desktop: false, }, { id: "sfx:notifications_volume", storaged: true, group: "notifications", component: "Slider", icon: "MdVolumeUp", title: "Sound Volume", description: "Set the volume of the sound when a notification is received.", props: { tipFormatter: (value) => { return `${value}%` } }, mobile: false, }, { id: "sidebar.collapsable", group: "sidebar", component: "Switch", icon: "Columns", title: "Auto Collapse", description: "Allow to collapse the sidebar when loose focus.", emitEvent: "settingChanged.sidebar_collapse", storaged: true, mobile: false, }, { id: "sidebar.collapse_delay_time", group: "sidebar", component: "Slider", icon: "MdTimer", dependsOn: { "sidebar.collapsable": true }, title: "Auto Collapse timeout", description: "Set the delay before the sidebar is collapsed", props: { min: 0, max: 2000, step: 100, marks: { 0: "No delay", 600: "0.6s", 1000: "1s", 1500: "1.5s", 2000: "2s", } }, storaged: true, mobile: false, }, { id: "transcode:browser", group: "posts", component: "Switch", icon: "MdVideoCameraFront", title: "Transcode video in browser", description: "Transcode videos from the application instead of on the servers. This feature may speed up the posting process depending on your computer. This will consume your computer resources.", experimental: true, storaged: true }, { id: "feed_max_fetch", title: "Fetch max items", description: "Set the maximum number of items to load per fetch in the feed list", component: "Slider", icon: "MdFormatListNumbered", group: "posts", props: { min: 5, max: 50, }, storaged: true, }, ] }