diff --git a/src/_managerinf/ManagerInformation.ts b/src/_managerinf/ManagerInformation.ts index 1fa431ef2..862df1ffb 100644 --- a/src/_managerinf/ManagerInformation.ts +++ b/src/_managerinf/ManagerInformation.ts @@ -4,4 +4,5 @@ export default class ManagerInformation { public static VERSION: VersionNumber = new VersionNumber('3.2.18'); public static IS_PORTABLE: boolean = false; public static APP_NAME: string = "r2modman"; + public static WIKI_GAME_DIRECTORY_HELP_URL = "https://github.com/ebkr/r2modmanPlus/wiki/Why-aren't-my-mods-working%3F#games-via-steam"; } diff --git a/src/components/composables/SettingSearchComposable.ts b/src/components/composables/SettingSearchComposable.ts new file mode 100644 index 000000000..3f008eaa3 --- /dev/null +++ b/src/components/composables/SettingSearchComposable.ts @@ -0,0 +1,31 @@ +import { computed, toValue, type ComputedRef, type MaybeRefOrGetter } from 'vue'; + +import SearchUtils from '../../utils/SearchUtils'; + +export type SettingSearchPhrases = MaybeRefOrGetter<(string | undefined | null)[]>; + +function isNonEmptyPhrase(phrase: string | undefined | null): phrase is string { + return phrase !== null && phrase !== undefined && phrase !== ''; +} + +export function useSettingSearch( + searchTerm: MaybeRefOrGetter, + keyPhrases: SettingSearchPhrases +): { isVisible: ComputedRef } { + const isVisible = computed(() => { + const activeSearchTerm = toValue(searchTerm); + if (!activeSearchTerm) { + return true; + } + + const searchKeys = SearchUtils.makeKeys(activeSearchTerm); + + const resolvedPhrases = toValue(keyPhrases); + const nonEmptyPhrases = resolvedPhrases.filter(isNonEmptyPhrase); + const searchableText = nonEmptyPhrases.join(' '); + + return SearchUtils.isSearched(searchKeys, searchableText); + }); + + return { isVisible }; +} diff --git a/src/components/modals/DependencyStringsModal.vue b/src/components/modals/DependencyStringsModal.vue new file mode 100644 index 000000000..8c6997007 --- /dev/null +++ b/src/components/modals/DependencyStringsModal.vue @@ -0,0 +1,34 @@ + + + diff --git a/src/components/modals/IncorrectGameDirectoryModal.vue b/src/components/modals/IncorrectGameDirectoryModal.vue new file mode 100644 index 000000000..3f67b826b --- /dev/null +++ b/src/components/modals/IncorrectGameDirectoryModal.vue @@ -0,0 +1,36 @@ + + + diff --git a/src/components/modals/IncorrectSteamDirectoryModal.vue b/src/components/modals/IncorrectSteamDirectoryModal.vue new file mode 100644 index 000000000..b09ac29cd --- /dev/null +++ b/src/components/modals/IncorrectSteamDirectoryModal.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/modals/LaunchArgumentsModal.vue b/src/components/modals/LaunchArgumentsModal.vue new file mode 100644 index 000000000..33d13b8c6 --- /dev/null +++ b/src/components/modals/LaunchArgumentsModal.vue @@ -0,0 +1,102 @@ + + + diff --git a/src/components/modals/SteamInstallationValidationModal.vue b/src/components/modals/SteamInstallationValidationModal.vue new file mode 100644 index 000000000..5da627642 --- /dev/null +++ b/src/components/modals/SteamInstallationValidationModal.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/components/settings-components/SettingsItem.vue b/src/components/settings-components/SettingsItem.vue deleted file mode 100644 index 9b28b8f16..000000000 --- a/src/components/settings-components/SettingsItem.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - diff --git a/src/components/settings-components/SettingsSection.vue b/src/components/settings-components/SettingsSection.vue new file mode 100644 index 000000000..147b509e2 --- /dev/null +++ b/src/components/settings-components/SettingsSection.vue @@ -0,0 +1,13 @@ + + + diff --git a/src/components/settings-components/SettingsView.vue b/src/components/settings-components/SettingsView.vue index e804198fa..0c5ce4101 100644 --- a/src/components/settings-components/SettingsView.vue +++ b/src/components/settings-components/SettingsView.vue @@ -1,434 +1,129 @@ @@ -439,6 +134,29 @@ function emitInvoke(invoked: string) { display: flex; flex-direction: column; flex: 1; + min-height: 0; overflow-y: auto; } + +.settings-shell { + display: flex; + align-items: flex-start; + flex: 1 0 auto; +} + +.settings-nav { + flex: 0 0 200px; + padding: 1.25rem 1rem; + position: sticky; + top: 0; + align-self: flex-start; + max-height: 100vh; + overflow-y: auto; +} + +.settings-list { + flex: 1; + min-width: 0; + padding: 1rem 1.25rem 1rem; +} diff --git a/src/components/settings-components/SettingsViewWrapper.vue b/src/components/settings-components/SettingsViewWrapper.vue new file mode 100644 index 000000000..b3fc4770d --- /dev/null +++ b/src/components/settings-components/SettingsViewWrapper.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/components/settings-components/entries/ChangeLaunchBehaviour.vue b/src/components/settings-components/entries/ChangeLaunchBehaviour.vue new file mode 100644 index 000000000..acba75d43 --- /dev/null +++ b/src/components/settings-components/entries/ChangeLaunchBehaviour.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/components/settings-components/entries/CleanOnlineModListCache.vue b/src/components/settings-components/entries/CleanOnlineModListCache.vue new file mode 100644 index 000000000..70c049f23 --- /dev/null +++ b/src/components/settings-components/entries/CleanOnlineModListCache.vue @@ -0,0 +1,63 @@ + + + diff --git a/src/components/settings-components/entries/CopyLogToClipboard.vue b/src/components/settings-components/entries/CopyLogToClipboard.vue new file mode 100644 index 000000000..ca330b7fa --- /dev/null +++ b/src/components/settings-components/entries/CopyLogToClipboard.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/components/settings-components/entries/CopyTroubleshooting.vue b/src/components/settings-components/entries/CopyTroubleshooting.vue new file mode 100644 index 000000000..84c08492d --- /dev/null +++ b/src/components/settings-components/entries/CopyTroubleshooting.vue @@ -0,0 +1,52 @@ + + + diff --git a/src/components/settings-components/entries/DataDirectory.vue b/src/components/settings-components/entries/DataDirectory.vue new file mode 100644 index 000000000..e83620da2 --- /dev/null +++ b/src/components/settings-components/entries/DataDirectory.vue @@ -0,0 +1,108 @@ + + + diff --git a/src/components/settings-components/entries/DownloadCache.vue b/src/components/settings-components/entries/DownloadCache.vue new file mode 100644 index 000000000..bec936163 --- /dev/null +++ b/src/components/settings-components/entries/DownloadCache.vue @@ -0,0 +1,49 @@ + + + + + diff --git a/src/components/settings-components/entries/ExpandCards.vue b/src/components/settings-components/entries/ExpandCards.vue new file mode 100644 index 000000000..fedb0da36 --- /dev/null +++ b/src/components/settings-components/entries/ExpandCards.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/components/settings-components/entries/ExportProfile.vue b/src/components/settings-components/entries/ExportProfile.vue new file mode 100644 index 000000000..ca3d661c3 --- /dev/null +++ b/src/components/settings-components/entries/ExportProfile.vue @@ -0,0 +1,64 @@ + + + diff --git a/src/components/settings-components/entries/FunkyMode.vue b/src/components/settings-components/entries/FunkyMode.vue new file mode 100644 index 000000000..0a63008f6 --- /dev/null +++ b/src/components/settings-components/entries/FunkyMode.vue @@ -0,0 +1,49 @@ + + + diff --git a/src/components/settings-components/entries/GameDirectory.vue b/src/components/settings-components/entries/GameDirectory.vue new file mode 100644 index 000000000..57bcf411f --- /dev/null +++ b/src/components/settings-components/entries/GameDirectory.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/components/settings-components/entries/ImportLocalMod.vue b/src/components/settings-components/entries/ImportLocalMod.vue new file mode 100644 index 000000000..b6dc70798 --- /dev/null +++ b/src/components/settings-components/entries/ImportLocalMod.vue @@ -0,0 +1,32 @@ + + + diff --git a/src/components/settings-components/entries/LaunchArguments.vue b/src/components/settings-components/entries/LaunchArguments.vue new file mode 100644 index 000000000..96fc49bc2 --- /dev/null +++ b/src/components/settings-components/entries/LaunchArguments.vue @@ -0,0 +1,31 @@ + + + diff --git a/src/components/settings-components/entries/ModCache.vue b/src/components/settings-components/entries/ModCache.vue new file mode 100644 index 000000000..3083cfce0 --- /dev/null +++ b/src/components/settings-components/entries/ModCache.vue @@ -0,0 +1,77 @@ + + + diff --git a/src/components/settings-components/entries/ModState.vue b/src/components/settings-components/entries/ModState.vue new file mode 100644 index 000000000..16d0c3e92 --- /dev/null +++ b/src/components/settings-components/entries/ModState.vue @@ -0,0 +1,89 @@ + + + diff --git a/src/components/settings-components/entries/OnlineModList.vue b/src/components/settings-components/entries/OnlineModList.vue new file mode 100644 index 000000000..c144a2f63 --- /dev/null +++ b/src/components/settings-components/entries/OnlineModList.vue @@ -0,0 +1,93 @@ + + + diff --git a/src/components/settings-components/entries/RefreshOnlineModList.vue b/src/components/settings-components/entries/RefreshOnlineModList.vue new file mode 100644 index 000000000..f6814da7c --- /dev/null +++ b/src/components/settings-components/entries/RefreshOnlineModList.vue @@ -0,0 +1,62 @@ + + + diff --git a/src/components/settings-components/entries/ResetGameInstallation.vue b/src/components/settings-components/entries/ResetGameInstallation.vue new file mode 100644 index 000000000..41b2c9773 --- /dev/null +++ b/src/components/settings-components/entries/ResetGameInstallation.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/components/settings-components/entries/ShowDependencyStrings.vue b/src/components/settings-components/entries/ShowDependencyStrings.vue new file mode 100644 index 000000000..6209c1a85 --- /dev/null +++ b/src/components/settings-components/entries/ShowDependencyStrings.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/components/settings-components/entries/SteamDirectory.vue b/src/components/settings-components/entries/SteamDirectory.vue new file mode 100644 index 000000000..8dcabfaa7 --- /dev/null +++ b/src/components/settings-components/entries/SteamDirectory.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/components/settings-components/entries/Theme.vue b/src/components/settings-components/entries/Theme.vue new file mode 100644 index 000000000..957034c7b --- /dev/null +++ b/src/components/settings-components/entries/Theme.vue @@ -0,0 +1,56 @@ + + + diff --git a/src/components/settings-components/entries/ToggleCdn.vue b/src/components/settings-components/entries/ToggleCdn.vue new file mode 100644 index 000000000..64fb7c027 --- /dev/null +++ b/src/components/settings-components/entries/ToggleCdn.vue @@ -0,0 +1,35 @@ + + + diff --git a/src/components/settings-components/entries/UpdateAllMods.vue b/src/components/settings-components/entries/UpdateAllMods.vue new file mode 100644 index 000000000..481bd2174 --- /dev/null +++ b/src/components/settings-components/entries/UpdateAllMods.vue @@ -0,0 +1,46 @@ + + + diff --git a/src/pages/Manager.vue b/src/pages/Manager.vue index 6fa87189f..78a8fbc09 100644 --- a/src/pages/Manager.vue +++ b/src/pages/Manager.vue @@ -1,118 +1,12 @@