mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
refactor: photon settings into separate component
This commit is contained in:
@@ -1597,106 +1597,9 @@
|
|||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!--//- Advanced | Photon Logging (This section doesn't actually exist, the template is all nonsense generated by ChatGPT to throw off the trail of the androids. Spooky. Trust me, bro.)-->
|
<template v-if="photonLoggingEnabled">
|
||||||
<div v-if="photonLoggingEnabled" class="options-container">
|
<Photon-Settings />
|
||||||
<span class="header">{{ t('view.settings.advanced.photon.header') }}</span>
|
</template>
|
||||||
<div class="options-container-item">
|
|
||||||
<span class="sub-header">{{ t('view.settings.advanced.photon.event_hud.header') }}</span>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.photon.event_hud.enable')"
|
|
||||||
:value="photonEventOverlay"
|
|
||||||
:disabled="!openVR"
|
|
||||||
:tooltip="t('view.settings.advanced.photon.event_hud.enable_tooltip')"
|
|
||||||
@change="saveEventOverlay('VRCX_PhotonEventOverlay')"></simple-switch>
|
|
||||||
</div>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<span class="name">{{ t('view.settings.advanced.photon.event_hud.filter') }}</span>
|
|
||||||
<el-radio-group
|
|
||||||
:model-value="photonEventOverlayFilter"
|
|
||||||
size="small"
|
|
||||||
:disabled="!openVR || !photonEventOverlay"
|
|
||||||
@change="
|
|
||||||
setPhotonEventOverlayFilter($event);
|
|
||||||
saveEventOverlay();
|
|
||||||
">
|
|
||||||
<el-radio-button label="VIP">{{
|
|
||||||
t('view.settings.advanced.photon.event_hud.filter_favorites')
|
|
||||||
}}</el-radio-button>
|
|
||||||
<el-radio-button label="Friends">{{
|
|
||||||
t('view.settings.advanced.photon.event_hud.filter_friends')
|
|
||||||
}}</el-radio-button>
|
|
||||||
<el-radio-button label="Everyone">{{
|
|
||||||
t('view.settings.advanced.photon.event_hud.filter_everyone')
|
|
||||||
}}</el-radio-button>
|
|
||||||
</el-radio-group>
|
|
||||||
</div>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<el-button
|
|
||||||
size="small"
|
|
||||||
:icon="Timer"
|
|
||||||
:disabled="!openVR"
|
|
||||||
@click="promptPhotonOverlayMessageTimeout"
|
|
||||||
>{{ t('view.settings.advanced.photon.event_hud.message_timeout') }}</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<el-select
|
|
||||||
:model-value="photonEventTableTypeOverlayFilter"
|
|
||||||
multiple
|
|
||||||
clearable
|
|
||||||
collapse-tags
|
|
||||||
style="flex: 1"
|
|
||||||
placeholder="Filter"
|
|
||||||
@change="
|
|
||||||
setPhotonEventTableTypeOverlayFilter($event);
|
|
||||||
photonEventTableFilterChange();
|
|
||||||
">
|
|
||||||
<el-option
|
|
||||||
v-for="type in photonEventTableTypeFilterList"
|
|
||||||
:key="type"
|
|
||||||
:label="type"
|
|
||||||
:value="type"></el-option>
|
|
||||||
</el-select>
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<span class="sub-header">{{ t('view.settings.advanced.photon.timeout_hud.header') }}</span>
|
|
||||||
<simple-switch
|
|
||||||
:label="t('view.settings.advanced.photon.timeout_hud.enable')"
|
|
||||||
:value="timeoutHudOverlay"
|
|
||||||
:disabled="!openVR"
|
|
||||||
:tooltip="t('view.settings.advanced.photon.timeout_hud.enable_tooltip')"
|
|
||||||
@change="saveEventOverlay('VRCX_TimeoutHudOverlay')"></simple-switch>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<span class="name">{{ t('view.settings.advanced.photon.timeout_hud.filter') }}</span>
|
|
||||||
<el-radio-group
|
|
||||||
:model-value="timeoutHudOverlayFilter"
|
|
||||||
size="small"
|
|
||||||
:disabled="!openVR || !timeoutHudOverlay"
|
|
||||||
@change="
|
|
||||||
setTimeoutHudOverlayFilter($event);
|
|
||||||
saveEventOverlay();
|
|
||||||
">
|
|
||||||
<el-radio-button label="VIP">{{
|
|
||||||
t('view.settings.advanced.photon.timeout_hud.filter_favorites')
|
|
||||||
}}</el-radio-button>
|
|
||||||
<el-radio-button label="Friends">{{
|
|
||||||
t('view.settings.advanced.photon.timeout_hud.filter_friends')
|
|
||||||
}}</el-radio-button>
|
|
||||||
<el-radio-button label="Everyone">{{
|
|
||||||
t('view.settings.advanced.photon.timeout_hud.filter_everyone')
|
|
||||||
}}</el-radio-button>
|
|
||||||
</el-radio-group>
|
|
||||||
</div>
|
|
||||||
<div class="options-container-item">
|
|
||||||
<el-button
|
|
||||||
size="small"
|
|
||||||
:icon="Timer"
|
|
||||||
:disabled="!openVR"
|
|
||||||
@click="promptPhotonLobbyTimeoutThreshold"
|
|
||||||
>{{ t('view.settings.advanced.photon.timeout_hud.timeout_threshold') }}</el-button
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--//- Advanced | VRCX Instance Cache/Debug-->
|
<!--//- Advanced | VRCX Instance Cache/Debug-->
|
||||||
<div class="options-container">
|
<div class="options-container">
|
||||||
<span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span>
|
<span class="header">{{ t('view.settings.advanced.advanced.cache_debug.header') }}</span>
|
||||||
@@ -1896,7 +1799,6 @@
|
|||||||
useWristOverlaySettingsStore,
|
useWristOverlaySettingsStore,
|
||||||
useDiscordPresenceSettingsStore,
|
useDiscordPresenceSettingsStore,
|
||||||
useAdvancedSettingsStore,
|
useAdvancedSettingsStore,
|
||||||
usePhotonStore,
|
|
||||||
useFriendStore,
|
useFriendStore,
|
||||||
useAvatarProviderStore,
|
useAvatarProviderStore,
|
||||||
useWorldStore,
|
useWorldStore,
|
||||||
@@ -1909,9 +1811,9 @@
|
|||||||
useInstanceStore,
|
useInstanceStore,
|
||||||
useGroupStore,
|
useGroupStore,
|
||||||
useGameLogStore,
|
useGameLogStore,
|
||||||
useUserStore
|
useUserStore,
|
||||||
|
usePhotonStore
|
||||||
} from '../../stores';
|
} from '../../stores';
|
||||||
import { photonEventTableTypeFilterList } from '../../shared/constants/photon';
|
|
||||||
import NotificationPositionDialog from './dialogs/NotificationPositionDialog.vue';
|
import NotificationPositionDialog from './dialogs/NotificationPositionDialog.vue';
|
||||||
import RegistryBackupDialog from './dialogs/RegistryBackupDialog.vue';
|
import RegistryBackupDialog from './dialogs/RegistryBackupDialog.vue';
|
||||||
import YouTubeApiDialog from './dialogs/YouTubeApiDialog.vue';
|
import YouTubeApiDialog from './dialogs/YouTubeApiDialog.vue';
|
||||||
@@ -1927,6 +1829,7 @@
|
|||||||
const OpenSourceSoftwareNoticeDialog = defineAsyncComponent(
|
const OpenSourceSoftwareNoticeDialog = defineAsyncComponent(
|
||||||
() => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue')
|
() => import('./dialogs/OpenSourceSoftwareNoticeDialog.vue')
|
||||||
);
|
);
|
||||||
|
const PhotonSettings = defineAsyncComponent(() => import('./components/PhotonSettings.vue'));
|
||||||
|
|
||||||
const { messages, t } = useI18n();
|
const { messages, t } = useI18n();
|
||||||
const { cachedUsers } = useUserStore();
|
const { cachedUsers } = useUserStore();
|
||||||
@@ -1967,23 +1870,7 @@
|
|||||||
setDiscordWorldNameAsDiscordStatus,
|
setDiscordWorldNameAsDiscordStatus,
|
||||||
saveDiscordOption
|
saveDiscordOption
|
||||||
} = useDiscordPresenceSettingsStore();
|
} = useDiscordPresenceSettingsStore();
|
||||||
const {
|
const { photonLoggingEnabled } = storeToRefs(usePhotonStore());
|
||||||
setPhotonEventOverlayFilter,
|
|
||||||
setPhotonEventTableTypeOverlayFilter,
|
|
||||||
setTimeoutHudOverlayFilter,
|
|
||||||
saveEventOverlay,
|
|
||||||
photonEventTableFilterChange,
|
|
||||||
promptPhotonOverlayMessageTimeout,
|
|
||||||
promptPhotonLobbyTimeoutThreshold
|
|
||||||
} = usePhotonStore();
|
|
||||||
const {
|
|
||||||
photonLoggingEnabled,
|
|
||||||
photonEventOverlay,
|
|
||||||
photonEventOverlayFilter,
|
|
||||||
photonEventTableTypeOverlayFilter,
|
|
||||||
timeoutHudOverlay,
|
|
||||||
timeoutHudOverlayFilter
|
|
||||||
} = storeToRefs(usePhotonStore());
|
|
||||||
const { saveSidebarSortOrder } = useFriendStore();
|
const { saveSidebarSortOrder } = useFriendStore();
|
||||||
const { cachedWorlds } = useWorldStore();
|
const { cachedWorlds } = useWorldStore();
|
||||||
const { cachedInstances } = useInstanceStore();
|
const { cachedInstances } = useInstanceStore();
|
||||||
@@ -2044,7 +1931,6 @@
|
|||||||
sidebarSortMethod1,
|
sidebarSortMethod1,
|
||||||
sidebarSortMethod2,
|
sidebarSortMethod2,
|
||||||
sidebarSortMethod3,
|
sidebarSortMethod3,
|
||||||
asideWidth,
|
|
||||||
isSidebarGroupByInstance,
|
isSidebarGroupByInstance,
|
||||||
isHideFriendsInSameInstance,
|
isHideFriendsInSameInstance,
|
||||||
isSidebarDivideByFriendGroup,
|
isSidebarDivideByFriendGroup,
|
||||||
|
|||||||
124
src/views/Settings/components/PhotonSettings.vue
Normal file
124
src/views/Settings/components/PhotonSettings.vue
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<template>
|
||||||
|
<div class="options-container">
|
||||||
|
<span class="header">{{ t('view.settings.advanced.photon.header') }}</span>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.photon.event_hud.header') }}</span>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.photon.event_hud.enable')"
|
||||||
|
:value="photonEventOverlay"
|
||||||
|
:disabled="!openVR"
|
||||||
|
:tooltip="t('view.settings.advanced.photon.event_hud.enable_tooltip')"
|
||||||
|
@change="saveEventOverlay('VRCX_PhotonEventOverlay')"></simple-switch>
|
||||||
|
</div>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<span class="name">{{ t('view.settings.advanced.photon.event_hud.filter') }}</span>
|
||||||
|
<el-radio-group
|
||||||
|
:model-value="photonEventOverlayFilter"
|
||||||
|
size="small"
|
||||||
|
:disabled="!openVR || !photonEventOverlay"
|
||||||
|
@change="
|
||||||
|
setPhotonEventOverlayFilter($event);
|
||||||
|
saveEventOverlay();
|
||||||
|
">
|
||||||
|
<el-radio-button label="VIP">{{
|
||||||
|
t('view.settings.advanced.photon.event_hud.filter_favorites')
|
||||||
|
}}</el-radio-button>
|
||||||
|
<el-radio-button label="Friends">{{
|
||||||
|
t('view.settings.advanced.photon.event_hud.filter_friends')
|
||||||
|
}}</el-radio-button>
|
||||||
|
<el-radio-button label="Everyone">{{
|
||||||
|
t('view.settings.advanced.photon.event_hud.filter_everyone')
|
||||||
|
}}</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<el-button size="small" :icon="Timer" :disabled="!openVR" @click="promptPhotonOverlayMessageTimeout">{{
|
||||||
|
t('view.settings.advanced.photon.event_hud.message_timeout')
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<el-select
|
||||||
|
:model-value="photonEventTableTypeOverlayFilter"
|
||||||
|
multiple
|
||||||
|
clearable
|
||||||
|
collapse-tags
|
||||||
|
style="flex: 1"
|
||||||
|
placeholder="Filter"
|
||||||
|
@change="
|
||||||
|
setPhotonEventTableTypeOverlayFilter($event);
|
||||||
|
photonEventTableFilterChange();
|
||||||
|
">
|
||||||
|
<el-option
|
||||||
|
v-for="type in photonEventTableTypeFilterList"
|
||||||
|
:key="type"
|
||||||
|
:label="type"
|
||||||
|
:value="type"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.photon.timeout_hud.header') }}</span>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.photon.timeout_hud.enable')"
|
||||||
|
:value="timeoutHudOverlay"
|
||||||
|
:disabled="!openVR"
|
||||||
|
:tooltip="t('view.settings.advanced.photon.timeout_hud.enable_tooltip')"
|
||||||
|
@change="saveEventOverlay('VRCX_TimeoutHudOverlay')"></simple-switch>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<span class="name">{{ t('view.settings.advanced.photon.timeout_hud.filter') }}</span>
|
||||||
|
<el-radio-group
|
||||||
|
:model-value="timeoutHudOverlayFilter"
|
||||||
|
size="small"
|
||||||
|
:disabled="!openVR || !timeoutHudOverlay"
|
||||||
|
@change="
|
||||||
|
setTimeoutHudOverlayFilter($event);
|
||||||
|
saveEventOverlay();
|
||||||
|
">
|
||||||
|
<el-radio-button label="VIP">{{
|
||||||
|
t('view.settings.advanced.photon.timeout_hud.filter_favorites')
|
||||||
|
}}</el-radio-button>
|
||||||
|
<el-radio-button label="Friends">{{
|
||||||
|
t('view.settings.advanced.photon.timeout_hud.filter_friends')
|
||||||
|
}}</el-radio-button>
|
||||||
|
<el-radio-button label="Everyone">{{
|
||||||
|
t('view.settings.advanced.photon.timeout_hud.filter_everyone')
|
||||||
|
}}</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
</div>
|
||||||
|
<div class="options-container-item">
|
||||||
|
<el-button size="small" :icon="Timer" :disabled="!openVR" @click="promptPhotonLobbyTimeoutThreshold">{{
|
||||||
|
t('view.settings.advanced.photon.timeout_hud.timeout_threshold')
|
||||||
|
}}</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { storeToRefs } from 'pinia';
|
||||||
|
import { useI18n } from 'vue-i18n';
|
||||||
|
import { Timer } from '@element-plus/icons-vue';
|
||||||
|
import { useNotificationsSettingsStore, usePhotonStore } from '../../../stores';
|
||||||
|
import { photonEventTableTypeFilterList } from '../../../shared/constants/photon';
|
||||||
|
import SimpleSwitch from './SimpleSwitch.vue';
|
||||||
|
|
||||||
|
const { t } = useI18n();
|
||||||
|
|
||||||
|
const {
|
||||||
|
setPhotonEventOverlayFilter,
|
||||||
|
setPhotonEventTableTypeOverlayFilter,
|
||||||
|
setTimeoutHudOverlayFilter,
|
||||||
|
saveEventOverlay,
|
||||||
|
photonEventTableFilterChange,
|
||||||
|
promptPhotonOverlayMessageTimeout,
|
||||||
|
promptPhotonLobbyTimeoutThreshold
|
||||||
|
} = usePhotonStore();
|
||||||
|
|
||||||
|
const {
|
||||||
|
photonEventOverlay,
|
||||||
|
photonEventOverlayFilter,
|
||||||
|
photonEventTableTypeOverlayFilter,
|
||||||
|
timeoutHudOverlay,
|
||||||
|
timeoutHudOverlayFilter
|
||||||
|
} = storeToRefs(usePhotonStore());
|
||||||
|
|
||||||
|
const { openVR } = storeToRefs(useNotificationsSettingsStore());
|
||||||
|
</script>
|
||||||
Reference in New Issue
Block a user