mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-14 04:13:52 +02:00
69 lines
1.6 KiB
JavaScript
69 lines
1.6 KiB
JavaScript
import {
|
|
useFriendStore,
|
|
useInstanceStore,
|
|
useLocationStore,
|
|
useUserStore
|
|
} from '../../stores';
|
|
import { parseLocation } from './location';
|
|
|
|
/**
|
|
*
|
|
* @param {string} location
|
|
* @returns
|
|
*/
|
|
function checkCanInvite(location) {
|
|
if (!location) {
|
|
return false;
|
|
}
|
|
const userStore = useUserStore();
|
|
const locationStore = useLocationStore();
|
|
const instanceStore = useInstanceStore();
|
|
const L = parseLocation(location);
|
|
const instance = instanceStore.cachedInstances.get(location);
|
|
if (instance?.closedAt) {
|
|
return false;
|
|
}
|
|
if (
|
|
L.accessType === 'public' ||
|
|
L.accessType === 'group' ||
|
|
L.userId === userStore.currentUser.id
|
|
) {
|
|
return true;
|
|
}
|
|
if (L.accessType === 'invite' || L.accessType === 'friends') {
|
|
return false;
|
|
}
|
|
if (locationStore.lastLocation.location === location) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {string} location
|
|
* @returns
|
|
*/
|
|
function checkCanInviteSelf(location) {
|
|
if (!location) {
|
|
return false;
|
|
}
|
|
const userStore = useUserStore();
|
|
const instanceStore = useInstanceStore();
|
|
const friendStore = useFriendStore();
|
|
const L = parseLocation(location);
|
|
const instance = instanceStore.cachedInstances.get(location);
|
|
if (instance?.closedAt) {
|
|
return false;
|
|
}
|
|
if (L.userId === userStore.currentUser.id) {
|
|
return true;
|
|
}
|
|
if (L.accessType === 'friends' && !friendStore.friends.has(L.userId)) {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
export { checkCanInvite, checkCanInviteSelf };
|