Fix invite response, small fixes

This commit is contained in:
Natsumi
2025-09-16 16:21:32 +12:00
parent 4c0b2c3299
commit 9a99b37fea
22 changed files with 137 additions and 106 deletions
@@ -568,8 +568,8 @@
</el-tabs> </el-tabs>
</div> </div>
<template v-if="avatarDialog.visible"> <template v-if="avatarDialog.visible">
<SetAvatarTagsDialog :set-avatar-tags-dialog="setAvatarTagsDialog" /> <SetAvatarTagsDialog v-model:setAvatarTagsDialog="setAvatarTagsDialog" />
<SetAvatarStylesDialog :set-avatar-styles-dialog="setAvatarStylesDialog" /> <SetAvatarStylesDialog v-model:setAvatarStylesDialog="setAvatarStylesDialog" />
<ChangeAvatarImageDialog <ChangeAvatarImageDialog
v-model:changeAvatarImageDialogVisible="changeAvatarImageDialogVisible" v-model:changeAvatarImageDialogVisible="changeAvatarImageDialogVisible"
v-model:previousImageUrl="previousImageUrl" /> v-model:previousImageUrl="previousImageUrl" />
@@ -649,7 +649,7 @@
const treeData = ref([]); const treeData = ref([]);
const timeSpent = ref(0); const timeSpent = ref(0);
const memo = ref(''); const memo = ref('');
const setAvatarTagsDialog = reactive({ const setAvatarTagsDialog = ref({
visible: false, visible: false,
loading: false, loading: false,
ownAvatars: [], ownAvatars: [],
@@ -663,7 +663,7 @@
contentAdult: false, contentAdult: false,
contentSex: false contentSex: false
}); });
const setAvatarStylesDialog = reactive({ const setAvatarStylesDialog = ref({
visible: false, visible: false,
loading: false, loading: false,
avatarId: '', avatarId: '',
@@ -1063,7 +1063,7 @@
} }
function showSetAvatarTagsDialog(avatarId) { function showSetAvatarTagsDialog(avatarId) {
const D = setAvatarTagsDialog; const D = setAvatarTagsDialog.value;
D.visible = true; D.visible = true;
D.loading = true; D.loading = true;
D.ownAvatars = []; D.ownAvatars = [];
@@ -1130,7 +1130,7 @@
} }
function showSetAvatarStylesDialog() { function showSetAvatarStylesDialog() {
const D = setAvatarStylesDialog; const D = setAvatarStylesDialog.value;
D.visible = true; D.visible = true;
D.loading = true; D.loading = true;
D.avatarId = avatarDialog.value.id; D.avatarId = avatarDialog.value.id;
@@ -2,7 +2,8 @@
<el-dialog <el-dialog
ref="setAvatarStylesDialog" ref="setAvatarStylesDialog"
class="x-dialog" class="x-dialog"
v-model="setAvatarStylesDialog.visible" :model-value="setAvatarStylesDialog.visible"
@close="closeSetAvatarStylesDialog"
:title="t('dialog.set_avatar_styles.header')" :title="t('dialog.set_avatar_styles.header')"
width="400px" width="400px"
append-to-body> append-to-body>
@@ -50,10 +51,8 @@
style="margin-top: 10px"></el-input> style="margin-top: 10px"></el-input>
</template> </template>
<template #footer> <template #footer>
<el-button size="small" @click="setAvatarStylesDialog.visible = false">{{ <el-button @click="closeSetAvatarStylesDialog">{{ t('dialog.set_avatar_styles.cancel') }}</el-button>
t('dialog.set_avatar_styles.cancel') <el-button type="primary" @click="saveSetAvatarStylesDialog">{{
}}</el-button>
<el-button type="primary" size="small" @click="saveSetAvatarStylesDialog">{{
t('dialog.set_avatar_styles.save') t('dialog.set_avatar_styles.save')
}}</el-button> }}</el-button>
</template> </template>
@@ -61,12 +60,13 @@
</template> </template>
<script setup> <script setup>
import { watch } from 'vue'; import { watch, defineEmits } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { arraysMatch } from '../../../shared/utils'; import { arraysMatch } from '../../../shared/utils';
import { avatarRequest } from '../../../api'; import { avatarRequest } from '../../../api';
import { useAvatarStore } from '../../../stores'; import { useAvatarStore } from '../../../stores';
import { ElMessage } from 'element-plus';
const { t } = useI18n(); const { t } = useI18n();
const { applyAvatar } = useAvatarStore(); const { applyAvatar } = useAvatarStore();
@@ -78,6 +78,8 @@
} }
}); });
const emit = defineEmits(['update:setAvatarStylesDialog']);
watch( watch(
() => props.setAvatarStylesDialog.visible, () => props.setAvatarStylesDialog.visible,
(newVal) => { (newVal) => {
@@ -99,6 +101,13 @@
props.setAvatarStylesDialog.availableAvatarStylesMap = stylesMap; props.setAvatarStylesDialog.availableAvatarStylesMap = stylesMap;
} }
function closeSetAvatarStylesDialog() {
emit('update:setAvatarStylesDialog', {
...props.setAvatarStylesDialog,
visible: false
});
}
function saveSetAvatarStylesDialog() { function saveSetAvatarStylesDialog() {
const primaryStyleId = const primaryStyleId =
props.setAvatarStylesDialog.availableAvatarStylesMap.get(props.setAvatarStylesDialog.primaryStyle) || ''; props.setAvatarStylesDialog.availableAvatarStylesMap.get(props.setAvatarStylesDialog.primaryStyle) || '';
@@ -127,7 +136,7 @@
props.setAvatarStylesDialog.initialSecondaryStyle === props.setAvatarStylesDialog.secondaryStyle && props.setAvatarStylesDialog.initialSecondaryStyle === props.setAvatarStylesDialog.secondaryStyle &&
arraysMatch(props.setAvatarStylesDialog.initialTags, tags) arraysMatch(props.setAvatarStylesDialog.initialTags, tags)
) { ) {
props.setAvatarStylesDialog.visible = false; closeSetAvatarStylesDialog();
return; return;
} }
@@ -141,11 +150,11 @@
.saveAvatar(params) .saveAvatar(params)
.then((args) => { .then((args) => {
applyAvatar(args.json); applyAvatar(args.json);
$message.success(t('dialog.set_avatar_styles.save_success')); ElMessage({ message: t('dialog.set_avatar_styles.save_success'), type: 'success' });
props.setAvatarStylesDialog.visible = false; closeSetAvatarStylesDialog();
}) })
.catch((error) => { .catch((error) => {
$message.error(t('dialog.set_avatar_styles.save_failed')); ElMessage({ message: t('dialog.set_avatar_styles.save_failed'), type: 'error' });
console.error('Error saving avatar styles:', error); console.error('Error saving avatar styles:', error);
}); });
} }
@@ -2,7 +2,8 @@
<el-dialog <el-dialog
ref="setAvatarTagsDialog" ref="setAvatarTagsDialog"
class="x-dialog" class="x-dialog"
v-model="setAvatarTagsDialog.visible" :model-value="setAvatarTagsDialog.visible"
@close="closeSetAvatarTagsDialog"
:title="t('dialog.set_avatar_tags.header')" :title="t('dialog.set_avatar_tags.header')"
width="770px" width="770px"
append-to-body> append-to-body>
@@ -82,10 +83,8 @@
</div> </div>
</template> </template>
<template #footer> <template #footer>
<el-button size="small" @click="setAvatarTagsDialog.visible = false">{{ <el-button @click="closeSetAvatarTagsDialog">{{ t('dialog.set_avatar_tags.cancel') }}</el-button>
t('dialog.set_avatar_tags.cancel') <el-button type="primary" @click="saveSetAvatarTagsDialog">{{
}}</el-button>
<el-button type="primary" size="small" @click="saveSetAvatarTagsDialog">{{
t('dialog.set_avatar_tags.save') t('dialog.set_avatar_tags.save')
}}</el-button> }}</el-button>
</template> </template>
@@ -96,7 +95,7 @@
import { Loading } from '@element-plus/icons-vue'; import { Loading } from '@element-plus/icons-vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import { watch } from 'vue'; import { watch, defineEmits } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { avatarRequest } from '../../../api'; import { avatarRequest } from '../../../api';
import { useAvatarStore } from '../../../stores'; import { useAvatarStore } from '../../../stores';
@@ -111,6 +110,8 @@
} }
}); });
const emit = defineEmits(['update:setAvatarTagsDialog']);
watch( watch(
() => props.setAvatarTagsDialog.visible, () => props.setAvatarTagsDialog.visible,
(newVal) => { (newVal) => {
@@ -122,6 +123,13 @@
} }
); );
function closeSetAvatarTagsDialog() {
emit('update:setAvatarTagsDialog', {
...props.setAvatarTagsDialog,
visible: false
});
}
function updateSelectedAvatarTags() { function updateSelectedAvatarTags() {
const D = props.setAvatarTagsDialog; const D = props.setAvatarTagsDialog;
if (D.contentHorror) { if (D.contentHorror) {
@@ -186,7 +194,6 @@
} }
} }
} }
// props.setAvatarTagsDialog.forceUpdate++;
} }
function setAvatarTagsSelectToggle() { function setAvatarTagsSelectToggle() {
@@ -726,7 +726,7 @@
</el-tab-pane> </el-tab-pane>
<el-tab-pane name="Posts" :label="t('dialog.group.posts.header')" lazy> <el-tab-pane name="Posts" :label="t('dialog.group.posts.header')" lazy>
<template v-if="groupDialog.visible"> <template v-if="groupDialog.visible">
<span style="margin-right: 10px" <span style="margin-right: 10px; vertical-align: top"
>{{ t('dialog.group.posts.posts_count') }} {{ groupDialog.posts.length }}</span >{{ t('dialog.group.posts.posts_count') }} {{ groupDialog.posts.length }}</span
> >
<el-input <el-input
@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
class="x-dialog" class="x-dialog"
v-model="inviteDialog.visible" :model-value="inviteDialog.visible"
:title="t('dialog.invite.header')" :title="t('dialog.invite.header')"
width="500px" width="500px"
append-to-body> append-to-body>
@@ -163,8 +163,8 @@
> >
</template> </template>
<SendInviteDialog <SendInviteDialog
:send-invite-dialog-visible="sendInviteDialogVisible" v-model:sendInviteDialogVisible="sendInviteDialogVisible"
:send-invite-dialog="sendInviteDialog" v-model:sendInviteDialog="sendInviteDialog"
:invite-dialog="inviteDialog" :invite-dialog="inviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
</el-dialog> </el-dialog>
@@ -1,7 +1,7 @@
<template> <template>
<el-dialog <el-dialog
class="x-dialog" class="x-dialog"
:model-value="visible" :model-value="isSendInviteConfirmDialogVisible"
:title="t('dialog.invite_message.header')" :title="t('dialog.invite_message.header')"
width="400px" width="400px"
append-to-body append-to-body
@@ -11,10 +11,10 @@
</div> </div>
<template #footer> <template #footer>
<el-button type="small" @click="cancelInviteConfirm"> <el-button type="default" @click="cancelInviteConfirm">
{{ t('dialog.invite_message.cancel') }} {{ t('dialog.invite_message.cancel') }}
</el-button> </el-button>
<el-button type="primary" size="small" @click="sendInviteConfirm"> <el-button type="primary" @click="sendInviteConfirm">
{{ t('dialog.invite_message.confirm') }} {{ t('dialog.invite_message.confirm') }}
</el-button> </el-button>
</template> </template>
@@ -36,7 +36,7 @@
const { currentUser } = storeToRefs(useUserStore()); const { currentUser } = storeToRefs(useUserStore());
const props = defineProps({ const props = defineProps({
visible: { isSendInviteConfirmDialogVisible: {
type: Boolean, type: Boolean,
required: true required: true
}, },
@@ -51,10 +51,10 @@
} }
}); });
const emit = defineEmits(['update:model-value', 'closeInviteDialog']); const emit = defineEmits(['update:isSendInviteConfirmDialogVisible', 'closeInviteDialog']);
function cancelInviteConfirm() { function cancelInviteConfirm() {
emit('update:model-value', false); emit('update:isSendInviteConfirmDialogVisible', false);
} }
function sendInviteConfirm() { function sendInviteConfirm() {
@@ -110,7 +110,8 @@
} }
}; };
inviteLoop(); inviteLoop();
} else if (messageType === 'invite') { } else if (messageType === 'message') {
// invite message
D.params.messageSlot = slot; D.params.messageSlot = slot;
if (uploadImage.value) { if (uploadImage.value) {
notificationRequest notificationRequest
@@ -75,13 +75,15 @@
</el-button> </el-button>
</template> </template>
<SendInviteConfirmDialog <SendInviteConfirmDialog
v-model="isSendInviteConfirmDialogVisible" v-model:isSendInviteConfirmDialogVisible="isSendInviteConfirmDialogVisible"
:send-invite-dialog="sendInviteDialog" :sendInviteDialog="sendInviteDialog"
@update:sendInviteDialog="emit('update:sendInviteDialog', $event)"
:invite-dialog="inviteDialog" :invite-dialog="inviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
<EditAndSendInviteDialog <EditAndSendInviteDialog
:edit-and-send-invite-dialog="editAndSendInviteDialog" :edit-and-send-invite-dialog="editAndSendInviteDialog"
:send-invite-dialog="sendInviteDialog" :sendInviteDialog="sendInviteDialog"
@update:sendInviteDialog="emit('update:sendInviteDialog', $event)"
:invite-dialog="inviteDialog" :invite-dialog="inviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
</el-dialog> </el-dialog>
@@ -120,7 +122,7 @@
} }
}); });
const emit = defineEmits(['closeInviteDialog', 'update:sendInviteDialogVisible']); const emit = defineEmits(['closeInviteDialog', 'update:sendInviteDialogVisible', 'update:sendInviteDialog']);
const isSendInviteConfirmDialogVisible = ref(false); const isSendInviteConfirmDialogVisible = ref(false);
@@ -130,12 +132,12 @@
}); });
function showSendInviteConfirmDialog(row) { function showSendInviteConfirmDialog(row) {
props.sendInviteDialog.messageSlot = row; emit('update:sendInviteDialog', { ...props.sendInviteDialog, messageSlot: row });
isSendInviteConfirmDialogVisible.value = true; isSendInviteConfirmDialogVisible.value = true;
} }
function showEditAndSendInviteDialog(row) { function showEditAndSendInviteDialog(row) {
props.sendInviteDialog.messageSlot = row; emit('update:sendInviteDialog', { ...props.sendInviteDialog, messageSlot: row });
editAndSendInviteDialog.value = { editAndSendInviteDialog.value = {
newMessage: row.message, newMessage: row.message,
visible: true visible: true
@@ -2,7 +2,6 @@
<el-dialog <el-dialog
class="x-dialog" class="x-dialog"
:model-value="sendInviteRequestDialogVisible" :model-value="sendInviteRequestDialogVisible"
@update:model-value="$emit('update:sendInviteRequestDialogVisible', $event)"
:title="t('dialog.invite_request_message.header')" :title="t('dialog.invite_request_message.header')"
width="800px" width="800px"
append-to-body append-to-body
@@ -49,13 +48,15 @@
}}</el-button> }}</el-button>
</template> </template>
<SendInviteConfirmDialog <SendInviteConfirmDialog
v-model="isSendInviteConfirmDialogVisible" v-model:isSendInviteConfirmDialogVisible="isSendInviteConfirmDialogVisible"
:send-invite-dialog="sendInviteDialog" :sendInviteDialog="sendInviteDialog"
@update:sendInviteDialog="emit('update:sendInviteDialog', $event)"
:invite-dialog="inviteDialog" :invite-dialog="inviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
<EditAndSendInviteDialog <EditAndSendInviteDialog
:edit-and-send-invite-dialog="editAndSendInviteDialog" :edit-and-send-invite-dialog="editAndSendInviteDialog"
:send-invite-dialog="sendInviteDialog" :sendInviteDialog="sendInviteDialog"
@update:sendInviteDialog="emit('update:sendInviteDialog', $event)"
:invite-dialog="inviteDialog" :invite-dialog="inviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
</el-dialog> </el-dialog>
@@ -96,7 +97,7 @@
} }
}); });
const emit = defineEmits(['update:sendInviteRequestDialogVisible', 'closeInviteDialog']); const emit = defineEmits(['update:sendInviteRequestDialogVisible', 'closeInviteDialog', 'update:sendInviteDialog']);
const isSendInviteConfirmDialogVisible = ref(false); const isSendInviteConfirmDialogVisible = ref(false);
@@ -106,12 +107,12 @@
}); });
function showSendInviteConfirmDialog(row) { function showSendInviteConfirmDialog(row) {
props.sendInviteDialog.messageSlot = row; emit('update:sendInviteDialog', { ...props.sendInviteDialog, messageSlot: row });
isSendInviteConfirmDialogVisible.value = true; isSendInviteConfirmDialogVisible.value = true;
} }
function showEditAndSendInviteDialog(row) { function showEditAndSendInviteDialog(row) {
props.sendInviteDialog.messageSlot = row; emit('update:sendInviteDialog', { ...props.sendInviteDialog, messageSlot: row });
editAndSendInviteDialog.value = { editAndSendInviteDialog.value = {
newMessage: row.message, newMessage: row.message,
visible: true visible: true
@@ -1727,12 +1727,12 @@
</el-tabs> </el-tabs>
</div> </div>
<SendInviteDialog <SendInviteDialog
:send-invite-dialog-visible="sendInviteDialogVisible" v-model:sendInviteDialogVisible="sendInviteDialogVisible"
:send-invite-dialog="sendInviteDialog" v-model:sendInviteDialog="sendInviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
<SendInviteRequestDialog <SendInviteRequestDialog
:send-invite-request-dialog-visible="sendInviteRequestDialogVisible" v-model:sendInviteRequestDialogVisible="sendInviteRequestDialogVisible"
:send-invite-dialog="sendInviteDialog" v-model:sendInviteDialog="sendInviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
<template v-if="userDialog.visible"> <template v-if="userDialog.visible">
<PreviousInstancesUserDialog v-model:previous-instances-user-dialog="previousInstancesUserDialog" /> <PreviousInstancesUserDialog v-model:previous-instances-user-dialog="previousInstancesUserDialog" />
+1 -1
View File
@@ -238,7 +238,7 @@ function setLoginContainerStyle(isDarkMode) {
transition: background-color 0.3s ease; transition: background-color 0.3s ease;
} }
.x-login-container .el-input__inner { .x-login-container .el-input__wrapper {
background-color: ${inputBackgroundColor} !important; background-color: ${inputBackgroundColor} !important;
border: ${inputBorder} !important; border: ${inputBorder} !important;
transition: background-color 0.3s ease, border-color 0.3s ease; transition: background-color 0.3s ease, border-color 0.3s ease;
+4 -1
View File
@@ -163,7 +163,10 @@ function copyToClipboard(text, message = 'Copied successfully!') {
}) })
.catch((err) => { .catch((err) => {
console.error('Copy failed:', err); console.error('Copy failed:', err);
ElMessage.error('Copy failed!'); ElMessage({
message: 'Copy failed!',
type: 'error'
});
}); });
} }
@@ -162,7 +162,10 @@
}) })
.catch((err) => { .catch((err) => {
console.error('Copy failed:', err); console.error('Copy failed:', err);
ElMessage.error('Copy failed!'); ElMessage({
message: 'Copy failed!',
type: 'error'
});
}); });
} }
function updateAvatarExportDialog() { function updateAvatarExportDialog() {
@@ -109,7 +109,10 @@
}) })
.catch((err) => { .catch((err) => {
console.error('Copy failed:', err); console.error('Copy failed:', err);
ElMessage.error('Copy failed!'); ElMessage({
message: 'Copy failed!',
type: 'error'
});
}); });
} }
@@ -164,7 +164,10 @@
}) })
.catch((err) => { .catch((err) => {
console.error('Copy failed:', err); console.error('Copy failed:', err);
ElMessage.error('Copy failed!'); ElMessage({
message: 'Copy failed!',
type: 'error'
});
}); });
} }
+9 -9
View File
@@ -318,11 +318,11 @@
<el-tooltip placement="top" content="Decline"> <el-tooltip placement="top" content="Decline">
<el-button <el-button
v-if="shiftHeld" v-if="shiftHeld"
style="color: #f56c6c; margin-left: 5px" style="color: #f56c6c"
type="text" type="text"
:icon="Close" :icon="Close"
size="small" size="small"
class="button-pd-0" :class="['button-pd-0', 'ml-5']"
@click="hideNotification(scope.row)" /> @click="hideNotification(scope.row)" />
<el-button <el-button
v-else v-else
@@ -338,11 +338,11 @@
<el-tooltip placement="top" content="Delete log"> <el-tooltip placement="top" content="Delete log">
<el-button <el-button
v-if="shiftHeld" v-if="shiftHeld"
style="color: #f56c6c; margin-left: 5px" style="color: #f56c6c"
type="text" type="text"
:icon="Close" :icon="Delete"
size="small" size="small"
class="button-pd-0" :class="['button-pd-0', 'ml-5']"
@click="deleteNotificationLog(scope.row)" /> @click="deleteNotificationLog(scope.row)" />
<el-button <el-button
v-else v-else
@@ -383,11 +383,11 @@
</el-table-column> </el-table-column>
</DataTable> </DataTable>
<SendInviteResponseDialog <SendInviteResponseDialog
:send-invite-response-dialog="sendInviteResponseDialog" v-model:send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-response-dialog-visible="sendInviteResponseDialogVisible" /> v-model:sendInviteResponseDialogVisible="sendInviteResponseDialogVisible" />
<SendInviteRequestResponseDialog <SendInviteRequestResponseDialog
:send-invite-response-dialog="sendInviteResponseDialog" v-model:send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-request-response-dialog-visible="sendInviteRequestResponseDialogVisible" /> v-model:sendInviteRequestResponseDialogVisible="sendInviteRequestResponseDialogVisible" />
</div> </div>
</template> </template>
@@ -1,7 +1,8 @@
<template> <template>
<el-dialog <el-dialog
class="x-dialog" class="x-dialog"
v-model="editAndSendInviteResponseDialog.visible" :model-value="editAndSendInviteResponseDialog.visible"
@close="cancelEditAndSendInviteResponse"
:title="t('dialog.edit_send_invite_response_message.header')" :title="t('dialog.edit_send_invite_response_message.header')"
width="400px" width="400px"
append-to-body> append-to-body>
@@ -52,10 +53,10 @@
} }
}); });
const emit = defineEmits(['closeInviteDialog', 'update:editAndSendInviteResponseDialog']); const emit = defineEmits(['closeInviteDialog', 'closeResponseConfirmDialog']);
function cancelEditAndSendInviteResponse() { function cancelEditAndSendInviteResponse() {
emit('update:editAndSendInviteResponseDialog', { ...props.editAndSendInviteResponseDialog, visible: false }); emit('closeResponseConfirmDialog');
} }
async function saveEditAndSendInviteResponse() { async function saveEditAndSendInviteResponse() {
@@ -50,14 +50,13 @@
<EditAndSendInviteResponseDialog <EditAndSendInviteResponseDialog
:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog" :edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog"
:send-invite-response-dialog="sendInviteResponseDialog" :send-invite-response-dialog="sendInviteResponseDialog"
@update:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog = $event" @closeInviteDialog="closeInviteDialog"
@update:send-invite-response-dialog="sendInviteResponseDialog = $event" @closeResponseConfirmDialog="closeResponseConfirmDialog" />
@closeInviteDialog="closeInviteDialog" />
<SendInviteResponseConfirmDialog <SendInviteResponseConfirmDialog
:send-invite-response-dialog="sendInviteResponseDialog" :send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog" :send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog"
@update:send-invite-response-dialog="sendInviteResponseDialog = $event" @closeInviteDialog="closeInviteDialog"
@closeInviteDialog="closeInviteDialog" /> @closeResponseConfirmDialog="closeResponseConfirmDialog" />
</el-dialog> </el-dialog>
</template> </template>
@@ -90,7 +89,7 @@
} }
}); });
const emit = defineEmits(['update:sendInviteRequestResponseDialogVisible']); const emit = defineEmits(['update:sendInviteRequestResponseDialogVisible', 'update:sendInviteResponseDialog']);
const editAndSendInviteResponseDialog = ref({ const editAndSendInviteResponseDialog = ref({
visible: false, visible: false,
@@ -102,7 +101,7 @@
}); });
function showEditAndSendInviteResponseDialog(row) { function showEditAndSendInviteResponseDialog(row) {
props.sendInviteResponseDialog.messageSlot = row; emit('update:sendInviteResponseDialog', { ...props.sendInviteResponseDialog, messageSlot: row });
editAndSendInviteResponseDialog.value = { editAndSendInviteResponseDialog.value = {
newMessage: row.message, newMessage: row.message,
visible: true visible: true
@@ -110,7 +109,7 @@
} }
function showSendInviteResponseConfirmDialog(row) { function showSendInviteResponseConfirmDialog(row) {
props.sendInviteResponseDialog.messageSlot = row; emit('update:sendInviteResponseDialog', { ...props.sendInviteResponseDialog, messageSlot: row });
sendInviteResponseConfirmDialog.value.visible = true; sendInviteResponseConfirmDialog.value.visible = true;
} }
@@ -118,6 +117,10 @@
cancelSendInviteRequestResponse(); cancelSendInviteRequestResponse();
} }
function closeResponseConfirmDialog() {
sendInviteResponseConfirmDialog.value.visible = false;
}
// function refreshInviteMessageTableData(...arg) { // function refreshInviteMessageTableData(...arg) {
// inviteMessagesRequest.refreshInviteMessageTableData(arg); // inviteMessagesRequest.refreshInviteMessageTableData(arg);
// } // }
@@ -12,7 +12,7 @@
<template #footer> <template #footer>
<el-button @click="cancelInviteResponseConfirm">{{ t('dialog.invite_response_message.cancel') }}</el-button> <el-button @click="cancelInviteResponseConfirm">{{ t('dialog.invite_response_message.cancel') }}</el-button>
<el-button type="primary" size="small" @click="sendInviteResponseConfirm">{{ <el-button type="primary" @click="sendInviteResponseConfirm">{{
t('dialog.invite_response_message.confirm') t('dialog.invite_response_message.confirm')
}}</el-button> }}</el-button>
</template> </template>
@@ -42,11 +42,10 @@
} }
}); });
const emit = defineEmits(['update:sendInviteResponseConfirmDialog', 'closeInviteDialog']); const emit = defineEmits(['closeResponseConfirmDialog', 'closeInviteDialog']);
function cancelInviteResponseConfirm() { function cancelInviteResponseConfirm() {
emit('update:sendInviteResponseConfirmDialog', { visible: false }); emit('closeResponseConfirmDialog');
props.sendInviteResponseConfirmDialog.visible = false;
} }
function sendInviteResponseConfirm() { function sendInviteResponseConfirm() {
@@ -57,7 +56,7 @@
}; };
if (uploadImage.value) { if (uploadImage.value) {
notificationRequest notificationRequest
.sendInviteResponsePhoto(params, D.invite.id, D.messageSlot.messageType) .sendInviteResponsePhoto(params, D.invite.id)
.catch((err) => { .catch((err) => {
throw err; throw err;
}) })
@@ -76,7 +75,7 @@
}); });
} else { } else {
notificationRequest notificationRequest
.sendInviteResponse(params, D.invite.id, D.messageSlot.messageType) .sendInviteResponse(params, D.invite.id)
.catch((err) => { .catch((err) => {
throw err; throw err;
}) })
@@ -46,13 +46,12 @@
<EditAndSendInviteResponseDialog <EditAndSendInviteResponseDialog
:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog" :edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog"
:send-invite-response-dialog="sendInviteResponseDialog" :send-invite-response-dialog="sendInviteResponseDialog"
@update:edit-and-send-invite-response-dialog="editAndSendInviteResponseDialog = $event" @closeResponseConfirmDialog="closeResponseConfirmDialog"
@update:send-invite-response-dialog="sendInviteResponseDialog = $event"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
<SendInviteResponseConfirmDialog <SendInviteResponseConfirmDialog
:send-invite-response-dialog="sendInviteResponseDialog" :send-invite-response-dialog="sendInviteResponseDialog"
:send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog" :send-invite-response-confirm-dialog="sendInviteResponseConfirmDialog"
@update:send-invite-response-dialog="sendInviteResponseDialog = $event" @closeResponseConfirmDialog="closeResponseConfirmDialog"
@closeInviteDialog="closeInviteDialog" /> @closeInviteDialog="closeInviteDialog" />
</el-dialog> </el-dialog>
</template> </template>
@@ -92,7 +91,7 @@
newMessage: '' newMessage: ''
}); });
const emit = defineEmits(['update:sendInviteResponseDialogVisible']); const emit = defineEmits(['update:sendInviteResponseDialogVisible', 'update:sendInviteResponseDialog']);
const sendInviteResponseConfirmDialog = ref({ const sendInviteResponseConfirmDialog = ref({
visible: false visible: false
@@ -106,15 +105,19 @@
emit('update:sendInviteResponseDialogVisible', false); emit('update:sendInviteResponseDialogVisible', false);
} }
function closeResponseConfirmDialog() {
sendInviteResponseConfirmDialog.value.visible = false;
}
function showEditAndSendInviteResponseDialog(row) { function showEditAndSendInviteResponseDialog(row) {
props.sendInviteResponseDialog.messageSlot = row; emit('update:sendInviteResponseDialog', { ...props.sendInviteResponseDialog, messageSlot: row });
editAndSendInviteResponseDialog.value = { editAndSendInviteResponseDialog.value = {
newMessage: row.message, newMessage: row.message,
visible: true visible: true
}; };
} }
function showSendInviteResponseConfirmDialog(row) { function showSendInviteResponseConfirmDialog(row) {
props.sendInviteResponseDialog.messageSlot = row; emit('update:sendInviteResponseDialog', { ...props.sendInviteResponseDialog, messageSlot: row });
sendInviteResponseConfirmDialog.value.visible = true; sendInviteResponseConfirmDialog.value.visible = true;
} }
</script> </script>
+4 -5
View File
@@ -481,12 +481,11 @@
</template> </template>
</el-tree> </el-tree>
</div> </div>
<DiscordNamesDialog :discord-names-dialog-visible="discordNamesDialogVisible" :friends="friends" /> <DiscordNamesDialog v-model:discordNamesDialogVisible="discordNamesDialogVisible" :friends="friends" />
<ExportFriendsListDialog <ExportFriendsListDialog
:is-export-friends-list-dialog-visible="isExportFriendsListDialogVisible" v-model:isExportFriendsListDialogVisible="isExportFriendsListDialogVisible"
:friends="friends" :friends="friends" />
@update:isExportFriendsListDialogVisible="isExportFriendsListDialogVisible = $event" /> <ExportAvatarsListDialog v-model:isExportAvatarsListDialogVisible="isExportAvatarsListDialogVisible" />
<ExportAvatarsListDialog :is-export-avatars-list-dialog-visible="isExportAvatarsListDialogVisible" />
</div> </div>
</template> </template>
@@ -72,7 +72,7 @@
}); });
throw new Error("VRChat API didn't update message, try again"); throw new Error("VRChat API didn't update message, try again");
} else { } else {
ElMessage.success('Invite message updated'); ElMessage({ message: 'Invite message updated', type: 'success' });
} }
return args; return args;
}); });
+6 -12
View File
@@ -524,8 +524,7 @@
@click="consumeInventoryBundle(item.id)" @click="consumeInventoryBundle(item.id)"
size="small" size="small"
:icon="Plus" :icon="Plus"
style="float: right" style="float: right">
circle>
{{ t('dialog.gallery_icons.consume_bundle') }} {{ t('dialog.gallery_icons.consume_bundle') }}
</el-button> </el-button>
</div> </div>
@@ -540,13 +539,7 @@
import { storeToRefs } from 'pinia'; import { storeToRefs } from 'pinia';
import { ref } from 'vue'; import { ref } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { import { miscRequest, userRequest, vrcPlusIconRequest, vrcPlusImageRequest, inventoryRequest } from '../../../api';
// inventoryRequest,
miscRequest,
userRequest,
vrcPlusIconRequest,
vrcPlusImageRequest
} from '../../../api';
import { AppDebug } from '../../../service/appConfig'; import { AppDebug } from '../../../service/appConfig';
import { emojiAnimationStyleList, emojiAnimationStyleUrl } from '../../../shared/constants'; import { emojiAnimationStyleList, emojiAnimationStyleUrl } from '../../../shared/constants';
import { extractFileId, formatDateFilter, getEmojiFileName, getPrintFileName } from '../../../shared/utils'; import { extractFileId, formatDateFilter, getEmojiFileName, getPrintFileName } from '../../../shared/utils';
@@ -1059,9 +1052,9 @@
async function consumeInventoryBundle(inventoryId) { async function consumeInventoryBundle(inventoryId) {
try { try {
// const args = await inventoryRequest.consumeInventoryBundle({ await inventoryRequest.consumeInventoryBundle({
// inventoryId inventoryId
// }); });
currentUserInventory.value.delete(inventoryId); currentUserInventory.value.delete(inventoryId);
const array = inventoryTable.value; const array = inventoryTable.value;
const { length } = array; const { length } = array;
@@ -1075,6 +1068,7 @@
} catch (error) { } catch (error) {
console.error('Error consuming inventory bundle:', error); console.error('Error consuming inventory bundle:', error);
} }
// -- response --
// errors: [] // errors: []
// inventoryItems : [] // inventoryItems : []
// inventoryItemsCreated: 0 // inventoryItemsCreated: 0