mirror of
https://github.com/modrinth/code.git
synced 2026-08-30 11:36:05 +00:00
* feat: base of instances v2 * feat: use old profiles with compat layer * prototype: instances v2 * fix: install_from using profile * fix: skins migration fix * fix: frontend still using profile path * fix: add update proj multiselect guard * fix: cargo fmt * fix: content missing fields * feat: break up app-lib/api/instance.rs * fix: check_content_updates mismatch * fix: updater modal cleanup w/new structure * feat: better update all handling * fix: remove preview_update_all * fix: feedback on bulk update + lint * fix: rem transitions * fix: change to jsonb * feat: app db backup after update * fix: lint * fix: sqlx prepare + use sqlx macros * fix: lint * fix: bugs * feat: defuck the installing process up * fix: bug of hell * fix: shear * fix: fmt * fix: install progress spacing + change mc/content/overrides to bytes * fix: lint * fix: prepr * fix: navtabs anim not working in app * fix: worlds.vue improvements + browse page fixes * feat: optimise queries + adapter fns * fix: lint * fix: lint * feat: shared modrinth-content-management crate (#6469) * feat: disable warnings setting * feat: add instances shortcuts (#6329) * Add modrinth://launch deep link to start a profile Support external profile launching via modrinth://launch/{profile_path} for integrations such as Stream Deck. * Change route to /launch/profile/{id} for future extensibility * fix: ensure profile path is url decoded * fix: URL-decode profile path from deep link * fix: use urlencoding crate for URL decoding * feat: implement app instance shortcuts * feat: change windows shortcut creation to use windows api instead * feat: implement creating a shortcut launching world/server * format * fmt * fix multiline inline tables * pnpm prepr * feat: move create shortcut to last item * refactor: split up shortcuts.rs for individual platforms * refactor: turn profile launch url into url type * use string literal and add safety comment * pt2 * refactor: rename anything that's profile into instance * update mac shortcut --------- Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com> --------- Co-authored-by: Truman Gao <106889354+tdgao@users.noreply.github.com> Co-authored-by: DJCheesusReal <134006619+DJCheesusReal@users.noreply.github.com>
88 lines
2.1 KiB
TypeScript
88 lines
2.1 KiB
TypeScript
/**
|
|
* All theseus API calls return serialized values (both return values and errors);
|
|
* So, for example, addDefaultInstance creates a blank instance object, where the Rust struct is serialized,
|
|
* and deserialized into a usable JS object.
|
|
*/
|
|
import { invoke } from '@tauri-apps/api/core'
|
|
|
|
import type { Hooks, MemorySettings, WindowSize } from '@/helpers/types'
|
|
import type { ColorTheme, FeatureFlag } from '@/store/theme.ts'
|
|
|
|
// Settings object
|
|
/*
|
|
|
|
Settings {
|
|
"memory": MemorySettings,
|
|
"game_resolution": [int int],
|
|
"custom_java_args": [String ...],
|
|
"custom_env_args" : [(string, string) ... ]>,
|
|
"java_globals": Hash of (string, Path),
|
|
"default_user": Uuid string (can be null),
|
|
"hooks": Hooks,
|
|
"max_concurrent_downloads": uint,
|
|
"version": u32,
|
|
"collapsed_navigation": bool,
|
|
}
|
|
|
|
Memorysettings {
|
|
"min": u32, can be null,
|
|
"max": u32,
|
|
}
|
|
|
|
*/
|
|
|
|
export type AppSettings = {
|
|
max_concurrent_downloads: number
|
|
max_concurrent_writes: number
|
|
|
|
theme: ColorTheme
|
|
locale: string
|
|
default_page: 'home' | 'library'
|
|
collapsed_navigation: boolean
|
|
hide_nametag_skins_page: boolean
|
|
advanced_rendering: boolean
|
|
native_decorations: boolean
|
|
toggle_sidebar: boolean
|
|
|
|
telemetry: boolean
|
|
discord_rpc: boolean
|
|
personalized_ads: boolean
|
|
|
|
onboarded: boolean
|
|
|
|
extra_launch_args: string[]
|
|
custom_env_vars: [string, string][]
|
|
memory: MemorySettings
|
|
force_fullscreen: boolean
|
|
game_resolution: WindowSize
|
|
hide_on_process_start: boolean
|
|
hooks: Hooks
|
|
|
|
custom_dir?: string | null
|
|
prev_custom_dir?: string | null
|
|
migrated: boolean
|
|
|
|
developer_mode: boolean
|
|
feature_flags: Record<FeatureFlag, boolean>
|
|
|
|
skipped_update: string | null
|
|
pending_update_toast_for_version: string | null
|
|
auto_download_updates: boolean | null
|
|
|
|
version: number
|
|
}
|
|
|
|
// Get full settings object
|
|
export async function get() {
|
|
return (await invoke('plugin:settings|settings_get')) as AppSettings
|
|
}
|
|
|
|
// Set full settings object
|
|
export async function set(settings: AppSettings) {
|
|
return await invoke('plugin:settings|settings_set', { settings })
|
|
}
|
|
|
|
export async function cancel_directory_change(): Promise<void> {
|
|
return await invoke('plugin:settings|cancel_directory_change')
|
|
}
|