Fix invite stuff

This commit is contained in:
Natsumi
2025-05-26 04:53:17 +10:00
parent 2f019ac038
commit 8b93bf5d57
15 changed files with 136 additions and 147 deletions

View File

@@ -42,6 +42,7 @@
const $message = instance.proxy.$message;
const API = inject('API');
const clearInviteImageUpload = inject('clearInviteImageUpload');
const props = defineProps({
editAndSendInviteDialog: {
@@ -181,7 +182,7 @@
notificationRequest
.sendRequestInvitePhoto(I.params, I.userId)
.catch((err) => {
this.clearInviteImageUpload();
clearInviteImageUpload();
throw err;
})
.then((args) => {

View File

@@ -160,7 +160,7 @@
:send-invite-dialog="sendInviteDialog"
:invite-dialog="inviteDialog"
:upload-image="uploadImage"
@close-invite-dialog="closeInviteDialog" />
@closeInviteDialog="closeInviteDialog" />
</safe-dialog>
</template>
@@ -180,6 +180,7 @@
const userStatusClass = inject('userStatusClass');
const userImage = inject('userImage');
const API = inject('API');
const clearInviteImageUpload = inject('clearInviteImageUpload');
const props = defineProps({
inviteDialog: {
@@ -209,10 +210,14 @@
}
});
const emit = defineEmits(['clearInviteImageUpload', 'inviteImageUpload', 'closeInviteDialog']);
const emit = defineEmits(['closeInviteDialog']);
const sendInviteDialogVisible = ref(false);
const sendInviteDialog = ref({ message: '', messageSlot: 0, userId: '', messageType: '', params: {} });
const sendInviteDialog = ref({
messageSlot: {},
userId: '',
params: {}
});
function closeInviteDialog() {
emit('closeInviteDialog');
@@ -222,17 +227,13 @@
sendInviteDialog.value = {
params,
userId,
messageType: 'invite'
messageSlot: {}
};
inviteMessagesRequest.refreshInviteMessageTableData('message');
clearInviteImageUpload();
sendInviteDialogVisible.value = true;
}
function clearInviteImageUpload() {
emit('clearInviteImageUpload');
}
function addSelfToInvite() {
const D = props.inviteDialog;
if (!D.userIds.includes(API.currentUser.id)) {

View File

@@ -33,6 +33,7 @@
const $message = instance.proxy.$message;
const API = inject('API');
const clearInviteImageUpload = inject('clearInviteImageUpload');
const props = defineProps({
visible: {
@@ -62,6 +63,8 @@
function sendInviteConfirm() {
const D = props.sendInviteDialog;
const J = props.inviteDialog;
const messageType = D.messageSlot.messageType;
const slot = D.messageSlot.slot;
if (J?.visible) {
const inviteLoop = () => {
if (J.userIds.length > 0) {
@@ -82,7 +85,7 @@
instanceId: J.worldId,
worldId: J.worldId,
worldName: J.worldName,
messageSlot: D.messageSlot
messageSlot: slot
},
receiverUserId
)
@@ -94,7 +97,7 @@
instanceId: J.worldId,
worldId: J.worldId,
worldName: J.worldName,
messageSlot: D.messageSlot
messageSlot: slot
},
receiverUserId
)
@@ -110,8 +113,8 @@
}
};
inviteLoop();
} else if (D.messageType === 'invite') {
D.params.messageSlot = D.messageSlot;
} else if (messageType === 'invite') {
D.params.messageSlot = slot;
if (props.uploadImage) {
notificationRequest
.sendInvitePhoto(D.params, D.userId)
@@ -139,13 +142,13 @@
return args;
});
}
} else if (D.messageType === 'requestInvite') {
D.params.requestSlot = D.messageSlot;
} else if (messageType === 'request') {
D.params.requestSlot = slot;
if (props.uploadImage) {
notificationRequest
.sendRequestInvitePhoto(D.params, D.userId)
.catch((err) => {
this.clearInviteImageUpload();
clearInviteImageUpload();
throw err;
})
.then((args) => {

View File

@@ -1,7 +1,7 @@
<template>
<safe-dialog
class="x-dialog"
:visible.sync="sendInviteDialogVisible"
:visible="sendInviteDialogVisible"
:title="t('dialog.invite_message.header')"
width="800px"
append-to-body
@@ -61,7 +61,7 @@
type="text"
icon="el-icon-edit"
size="mini"
@click.stop="showEditAndSendInviteDialog('message', scope.row)"></el-button>
@click.stop="showEditAndSendInviteDialog(scope.row)"></el-button>
</template>
</el-table-column>
</data-tables>
@@ -98,6 +98,7 @@
const { t } = useI18n();
const API = inject('API');
const inviteImageUpload = inject('inviteImageUpload');
const props = defineProps({
sendInviteDialogVisible: {
@@ -123,34 +124,25 @@
}
});
const emit = defineEmits(['inviteImageUpload', 'update:sendInviteDialogVisible', 'closeInviteDialog']);
const emit = defineEmits(['closeInviteDialog', 'update:sendInviteDialogVisible']);
const isSendInviteConfirmDialogVisible = ref(false);
const editAndSendInviteDialog = ref({
visible: false,
messageType: '',
newMessage: '',
inviteMessage: {}
newMessage: ''
});
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
}
function showSendInviteConfirmDialog(val) {
function showSendInviteConfirmDialog(row) {
props.sendInviteDialog.messageSlot = row;
isSendInviteConfirmDialogVisible.value = true;
//
props.sendInviteDialog.messageSlot = val.slot;
}
function showEditAndSendInviteDialog(messageType, inviteMessage) {
// todo
function showEditAndSendInviteDialog(row) {
props.sendInviteDialog.messageSlot = row;
editAndSendInviteDialog.value = {
newMessage: inviteMessage.message,
visible: true,
messageType,
inviteMessage
visible: true
};
}

View File

@@ -84,7 +84,7 @@
:active-friends="activeFriends"
:invite-message-table="inviteMessageTable"
:upload-image="uploadImage"
@close-invite-dialog="closeInviteDialog" />
@closeInviteDialog="closeInviteDialog" />
</safe-dialog>
</template>

View File

@@ -490,7 +490,7 @@
:active-friends="activeFriends"
:invite-message-table="inviteMessageTable"
:upload-image="uploadImage"
@close-invite-dialog="closeInviteDialog" />
@closeInviteDialog="closeInviteDialog" />
</safe-dialog>
</template>

View File

@@ -36,7 +36,7 @@
type="text"
icon="el-icon-edit"
size="mini"
@click.stop="showEditAndSendInviteDialog('request', scope.row)"></el-button>
@click.stop="showEditAndSendInviteDialog(scope.row)"></el-button>
</template>
</el-table-column>
</data-tables>
@@ -73,6 +73,7 @@
const { t } = useI18n();
const API = inject('API');
const inviteImageUpload = inject('inviteImageUpload');
const props = defineProps({
sendInviteRequestDialogVisible: {
@@ -98,33 +99,25 @@
}
});
const emit = defineEmits(['inviteImageUpload', 'update:sendInviteRequestDialogVisible', 'closeInviteDialog']);
const emit = defineEmits(['update:sendInviteRequestDialogVisible', 'closeInviteDialog']);
const isSendInviteConfirmDialogVisible = ref(false);
const editAndSendInviteDialog = ref({
visible: false,
messageType: '',
newMessage: '',
inviteMessage: {}
newMessage: ''
});
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
}
function showSendInviteConfirmDialog(val) {
function showSendInviteConfirmDialog(row) {
props.sendInviteDialog.messageSlot = row;
isSendInviteConfirmDialogVisible.value = true;
//
props.sendInviteDialog.messageSlot = val.slot;
}
function showEditAndSendInviteDialog(messageType, inviteMessage) {
function showEditAndSendInviteDialog(row) {
props.sendInviteDialog.messageSlot = row;
editAndSendInviteDialog.value = {
newMessage: inviteMessage.message,
visible: true,
messageType,
inviteMessage
newMessage: row.message,
visible: true
};
}

View File

@@ -553,7 +553,7 @@
<template v-if="isRealInstance(userDialog.$location.tag)">
<launch
:location="userDialog.$location.tag"
@show-launch-dialog="showLaunchDialog"></launch>
@show-launch-dialog="showLaunchDialog" />
<el-tooltip
placement="top"
:content="t('dialog.user.info.self_invite_tooltip')"
@@ -1755,13 +1755,14 @@
:send-invite-dialog-visible.sync="sendInviteDialogVisible"
:invite-message-table="inviteMessageTable"
:send-invite-dialog="sendInviteDialog"
:upload-image="uploadImage" />
:upload-image="uploadImage"
@closeInviteDialog="closeInviteDialog" />
<SendInviteRequestDialog
:send-invite-request-dialog-visible.sync="sendInviteRequestDialogVisible"
:invite-request-message-table="inviteRequestMessageTable"
:send-invite-dialog="sendInviteDialog"
:upload-image="uploadImage"
@inviteImageUpload="inviteImageUpload" />
@closeInviteDialog="closeInviteDialog" />
<PreviousInstancesUserDialog
:previous-instances-user-dialog.sync="previousInstancesUserDialog"
:shift-held="shiftHeld" />
@@ -1848,6 +1849,7 @@
const API = inject('API');
const showFullscreenImageDialog = inject('showFullscreenImageDialog');
const clearInviteImageUpload = inject('clearInviteImageUpload');
const userImage = inject('userImage');
const showLaunchDialog = inject('showLaunchDialog');
@@ -2032,7 +2034,6 @@
'saveUserMemo',
'setGroupVisibility',
'leaveGroupPrompt',
'clearInviteImageUpload',
'refreshGalleryTable',
'refreshVRCPlusIconsTable',
'refreshStickerTable',
@@ -2075,7 +2076,11 @@
const favoriteWorldsRef = ref(null);
const sendInviteDialogVisible = ref(false);
const sendInviteDialog = ref({ message: '', messageSlot: 0, userId: '', messageType: '', params: {} });
const sendInviteDialog = ref({
messageSlot: {},
userId: '',
params: {}
});
const sendInviteRequestDialogVisible = ref(false);
const previousInstancesUserDialog = ref({
@@ -2308,7 +2313,7 @@
sendInviteDialog.value = {
params,
userId,
messageType: 'invite'
messageSlot: {}
};
inviteMessagesRequest.refreshInviteMessageTableData('message');
clearInviteImageUpload();
@@ -2319,7 +2324,7 @@
sendInviteDialog.value = {
params,
userId,
messageType: 'requestInvite'
messageSlot: {}
};
inviteMessagesRequest.refreshInviteMessageTableData('request');
clearInviteImageUpload();
@@ -3244,11 +3249,8 @@
function saveUserMemo(userId, memo) {
emit('saveUserMemo', userId, memo);
}
function clearInviteImageUpload() {
emit('clearInviteImageUpload');
}
function inviteImageUpload(event) {
emit('inviteImageUpload', event);
function closeInviteDialog() {
clearInviteImageUpload();
}
function refreshGalleryTable() {
emit('refreshGalleryTable');