refactor utils

This commit is contained in:
pa
2026-03-10 20:08:16 +09:00
parent ff1529920b
commit 1dfd0bf54c
40 changed files with 435 additions and 275 deletions

View File

@@ -6,10 +6,11 @@
import { useI18n } from 'vue-i18n';
import { useGlobalSearchStore } from '../stores/globalSearch';
import { userImage } from '../shared/utils';
import { useUserDisplay } from '../composables/useUserDisplay';
import GlobalSearchSync from './GlobalSearchSync.vue';
const { userImage } = useUserDisplay();
const globalSearchStore = useGlobalSearchStore();
const {
isOpen,

View File

@@ -159,7 +159,8 @@
useModalStore,
useUserStore
} from '../stores';
import { checkCanInviteSelf, formatDateFilter, hasGroupPermission, parseLocation } from '../shared/utils';
import { formatDateFilter, hasGroupPermission, parseLocation } from '../shared/utils';
import { useInviteChecks } from '../composables/useInviteChecks';
import { instanceRequest, miscRequest } from '../api';
import { showUserDialog } from '../coordinators/userCoordinator';
@@ -180,6 +181,7 @@
const { instanceJoinHistory } = storeToRefs(instanceStore);
const { canOpenInstanceInGame } = storeToRefs(inviteStore);
const { isOpeningInstance } = storeToRefs(launchStore);
const { checkCanInviteSelf } = useInviteChecks();
const props = defineProps({
location: {

View File

@@ -571,6 +571,7 @@
import {
useAppearanceSettingsStore,
useAuthStore,
useAvatarStore,
useFavoriteStore,
useGalleryStore,
@@ -622,6 +623,7 @@ import { showUserDialog } from '../../../coordinators/userCoordinator';
const { isGameRunning } = storeToRefs(useGameStore());
const { showFullscreenImageDialog } = useGalleryStore();
const { isDarkMode } = storeToRefs(useAppearanceSettingsStore());
const authStore = useAuthStore();
const modalStore = useModalStore();
const uiStore = useUiStore();
@@ -698,7 +700,7 @@ import { showUserDialog } from '../../../coordinators/userCoordinator';
// skip imposters
continue;
}
if (!compareUnityVersion(unityPackage.unitySortNumber)) {
if (!compareUnityVersion(unityPackage.unitySortNumber, authStore.cachedConfig.sdkUnityVersion)) {
continue;
}
let platform = 'PC';

View File

@@ -210,13 +210,15 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { downloadAndSaveJson, hasGroupPermission, userImage } from '../../../shared/utils';
import { downloadAndSaveJson, hasGroupPermission } from '../../../shared/utils';
import { useUserDisplay } from '../../../composables/useUserDisplay';
import { useGroupStore, useUserStore } from '../../../stores';
import { applyGroupMember, handleGroupMember } from '../../../coordinators/groupCoordinator';
import { groupDialogSortingOptions } from '../../../shared/constants';
import { useGroupMembers } from './useGroupMembers';
import { showUserDialog } from '../../../coordinators/userCoordinator';
const { userImage } = useUserDisplay();
const { t } = useI18n();

View File

@@ -123,7 +123,8 @@
import { useAppearanceSettingsStore, useGalleryStore, useGroupStore, useUserStore } from '../../../stores';
import { applyGroupMember, handleGroupMember, handleGroupMemberProps } from '../../../coordinators/groupCoordinator';
import { hasGroupPermission, userImage, userImageFull } from '../../../shared/utils';
import { hasGroupPermission } from '../../../shared/utils';
import { useUserDisplay } from '../../../composables/useUserDisplay';
import { groupDialogFilterOptions, groupDialogSortingOptions } from '../../../shared/constants';
import { groupRequest, userRequest } from '../../../api';
import { resolveRoleNames } from './groupModerationUtils';
@@ -142,6 +143,7 @@
import { showUserDialog } from '../../../coordinators/userCoordinator';
// ── Stores ───────────────────────────────────────────────────
const { userImage, userImageFull } = useUserDisplay();
const appearanceSettingsStore = useAppearanceSettingsStore();
const { randomUserColours } = storeToRefs(appearanceSettingsStore);

View File

@@ -106,12 +106,14 @@
import { useI18n } from 'vue-i18n';
import { useFriendStore, useGalleryStore, useInviteStore, useModalStore, useUserStore } from '../../../stores';
import { parseLocation, userImage, userStatusClass } from '../../../shared/utils';
import { parseLocation } from '../../../shared/utils';
import { useUserDisplay } from '../../../composables/useUserDisplay';
import { instanceRequest, notificationRequest } from '../../../api';
import { VirtualCombobox } from '../../ui/virtual-combobox';
import SendInviteDialog from './SendInviteDialog.vue';
const { userImage, userStatusClass } = useUserDisplay();
const { vipFriends, onlineFriends, activeFriends } = storeToRefs(useFriendStore());
const { refreshInviteMessageTableData } = useInviteStore();
const { currentUser } = storeToRefs(useUserStore());

View File

@@ -96,13 +96,15 @@
import { toast } from 'vue-sonner';
import { useI18n } from 'vue-i18n';
import { hasGroupPermission, userImage, userStatusClass } from '../../shared/utils';
import { hasGroupPermission } from '../../shared/utils';
import { useUserDisplay } from '../../composables/useUserDisplay';
import { useFriendStore, useGroupStore, useModalStore } from '../../stores';
import { groupRequest, queryRequest } from '../../api';
import { VirtualCombobox } from '../ui/virtual-combobox';
import configRepository from '../../services/config';
const { userImage, userStatusClass } = useUserDisplay();
const { vipFriends, onlineFriends, activeFriends, offlineFriends } = storeToRefs(useFriendStore());
const { currentUserGroups, inviteGroupDialog } = storeToRefs(useGroupStore());
const { applyGroup } = useGroupStore();

View File

@@ -161,7 +161,8 @@
useLocationStore,
useModalStore
} from '../../stores';
import { checkCanInvite, getLaunchURL, isRealInstance, parseLocation } from '../../shared/utils';
import { getLaunchURL, isRealInstance, parseLocation } from '../../shared/utils';
import { useInviteChecks } from '../../composables/useInviteChecks';
import { instanceRequest, queryRequest } from '../../api';
import InviteDialog from './InviteDialog/InviteDialog.vue';
@@ -178,6 +179,7 @@
const { canOpenInstanceInGame } = storeToRefs(useInviteStore());
const { isGameRunning } = storeToRefs(useGameStore());
const { checkCanInvite } = useInviteChecks();
const launchModeLabel = computed(() =>
launchDialog.value.desktop ? t('dialog.launch.start_as_desktop') : t('dialog.launch.launch')

View File

@@ -63,11 +63,13 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { hasGroupModerationPermission, userImage } from '../../shared/utils';
import { hasGroupModerationPermission } from '../../shared/utils';
import { useUserDisplay } from '../../composables/useUserDisplay';
import { VirtualCombobox } from '../ui/virtual-combobox';
import { queryRequest } from '../../api';
import { useGroupStore } from '../../stores';
const { userImage } = useUserDisplay();
const { currentUserGroups, moderateGroupDialog } = storeToRefs(useGroupStore());
const { showGroupMemberModerationDialog } = useGroupStore();
const { t } = useI18n();

View File

@@ -251,7 +251,7 @@
DropdownMenuTrigger
} from '../../ui/dropdown-menu';
import { useGameStore, useLocationStore, useUserStore } from '../../../stores';
import { checkCanInvite } from '../../../shared/utils';
import { useInviteChecks } from '../../../composables/useInviteChecks';
const props = defineProps({
userDialogCommand: {
@@ -265,6 +265,7 @@
const { userDialog, currentUser } = storeToRefs(useUserStore());
const { isGameRunning } = storeToRefs(useGameStore());
const { lastLocation } = storeToRefs(useLocationStore());
const { checkCanInvite } = useInviteChecks();
const hasRequest = computed(() => userDialog.value.incomingRequest || userDialog.value.outgoingRequest);
const hasRisk = computed(

View File

@@ -269,13 +269,14 @@
import { useI18n } from 'vue-i18n';
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '../../ui/dropdown-menu';
import { useInstanceStore, useWorldStore } from '../../../stores';
import { useAuthStore, useInstanceStore, useWorldStore } from '../../../stores';
import { openExternalLink } from '../../../shared/utils';
import { useWorldDialogInfo } from './useWorldDialogInfo';
const { t } = useI18n();
const { worldDialog } = storeToRefs(useWorldStore());
const authStore = useAuthStore();
const { showPreviousInstancesListDialog: openPreviousInstancesListDialog } = useInstanceStore();
const {
@@ -293,7 +294,7 @@
copyWorldName,
commaNumber,
formatDateFilter
} = useWorldDialogInfo(worldDialog, { t, toast });
} = useWorldDialogInfo(worldDialog, { t, toast, sdkUnityVersion: authStore.cachedConfig.sdkUnityVersion });
/**
*

View File

@@ -108,7 +108,8 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
import { refreshInstancePlayerCount, userImage, userStatusClass } from '../../../shared/utils';
import { refreshInstancePlayerCount } from '../../../shared/utils';
import { useUserDisplay } from '../../../composables/useUserDisplay';
import {
useAppearanceSettingsStore,
useInstanceStore,
@@ -118,9 +119,10 @@
} from '../../../stores';
import InstanceActionBar from '../../InstanceActionBar.vue';
import { showUserDialog } from '../../../coordinators/userCoordinator';
import { showUserDialog } from '../../../coordinators/userCoordinator';
const { t } = useI18n();
const { userImage, userStatusClass } = useUserDisplay();
const { isAgeGatedInstancesVisible } = storeToRefs(useAppearanceSettingsStore());

View File

@@ -16,7 +16,7 @@ import { database } from '../../../services/database';
* @param {Function} deps.toast - toast notification function
* @returns {Object} info composable API
*/
export function useWorldDialogInfo(worldDialog, { t, toast }) {
export function useWorldDialogInfo(worldDialog, { t, toast, sdkUnityVersion }) {
const memo = computed({
get() {
return worldDialog.value.memo;
@@ -71,7 +71,7 @@ export function useWorldDialogInfo(worldDialog, { t, toast }) {
const platforms = [];
if (ref.unityPackages) {
for (const unityPackage of ref.unityPackages) {
if (!compareUnityVersion(unityPackage.unitySortNumber)) {
if (!compareUnityVersion(unityPackage.unitySortNumber, sdkUnityVersion)) {
continue;
}
let platform = 'PC';