Refresh group dialog when joining/leaving a group

This commit is contained in:
Natsumi
2025-06-18 12:53:12 +12:00
parent e06412d07b
commit 1edd8b52fa
2 changed files with 11 additions and 42 deletions
+1 -10
View File
@@ -7621,18 +7621,9 @@ console.log(`isLinux: ${LINUX}`);
$app.methods.showGroupDialogShortCode = function (shortCode) { $app.methods.showGroupDialogShortCode = function (shortCode) {
groupRequest.groupStrictsearch({ query: shortCode }).then((args) => { groupRequest.groupStrictsearch({ query: shortCode }).then((args) => {
for (const group of args.json) { for (const group of args.json) {
// API.$on('GROUP:STRICTSEARCH', function (args) {
// for (var json of args.json) {
API.$emit('GROUP', {
group,
params: {
groupId: group.id
}
});
// }
// });
if (`${group.shortCode}.${group.discriminator}` === shortCode) { if (`${group.shortCode}.${group.discriminator}` === shortCode) {
this.showGroupDialog(group.id); this.showGroupDialog(group.id);
break;
} }
} }
return args; return args;
@@ -1248,7 +1248,7 @@
const emit = defineEmits([ const emit = defineEmits([
'update:group-dialog', 'update:group-dialog',
'groupDialogCommand', 'groupDialogCommand',
'get-group-dialog-group', 'getGroupDialogGroup',
'updateGroupPostSearch' 'updateGroupPostSearch'
]); ]);
@@ -1401,11 +1401,12 @@
}) })
.then((args) => { .then((args) => {
// API.$on('GROUP:SETREPRESENTATION', function (args) { // API.$on('GROUP:SETREPRESENTATION', function (args) {
if (props.groupDialog.visible && props.groupDialog.id === args.groupId) { if (props.groupDialog.visible && props.groupDialog.id === groupId) {
updateGroupDialogData({ updateGroupDialogData({
...props.groupDialog, ...props.groupDialog,
ref: { ...props.groupDialog.ref, isRepresenting: args.params.isRepresenting } ref: { ...props.groupDialog.ref, isRepresenting: args.params.isRepresenting }
}); });
getGroupDialogGroup(groupId);
} }
}); });
} }
@@ -1417,9 +1418,8 @@
}) })
.then((args) => { .then((args) => {
// API.$on('GROUP:CANCELJOINREQUEST', function (args) { // API.$on('GROUP:CANCELJOINREQUEST', function (args) {
const groupId = args.params.groupId; if (props.groupDialog.visible && props.groupDialog.id === id) {
if (props.groupDialog.visible && props.groupDialog.id === groupId) { getGroupDialogGroup(id);
getGroupDialogGroup(groupId);
} }
// }); // });
}); });
@@ -1536,35 +1536,13 @@
}) })
.then((args) => { .then((args) => {
// API.$on('GROUP:JOIN', function (args) { // API.$on('GROUP:JOIN', function (args) {
const json = { if (props.groupDialog.visible && props.groupDialog.id === id) {
$memberId: args.json.id,
id: args.json.groupId,
membershipStatus: args.json.membershipStatus,
myMember: {
isRepresenting: args.json.isRepresenting,
id: args.json.id,
roleIds: args.json.roleIds,
joinedAt: args.json.joinedAt,
membershipStatus: args.json.membershipStatus,
visibility: args.json.visibility,
isSubscribedToAnnouncements: args.json.isSubscribedToAnnouncements
}
};
const groupId = json.id;
API.$emit('GROUP', {
json,
params: {
groupId,
userId: args.params.userId
}
});
if (props.groupDialog.visible && props.groupDialog.id === groupId) {
updateGroupDialogData({ updateGroupDialogData({
...props.groupDialog, ...props.groupDialog,
inGroup: json.membershipStatus === 'member' inGroup: args.json.membershipStatus === 'member'
}); });
// props.groupDialog.inGroup = json.membershipStatus === 'member'; // props.groupDialog.inGroup = args.json.membershipStatus === 'member';
getGroupDialogGroup(groupId); getGroupDialogGroup(id);
} }
// }); // });
if (args.json.membershipStatus === 'member') { if (args.json.membershipStatus === 'member') {
@@ -1803,7 +1781,7 @@
emit('update:group-dialog', obj); emit('update:group-dialog', obj);
} }
function getGroupDialogGroup(groupId) { function getGroupDialogGroup(groupId) {
emit('get-group-dialog-group', groupId); emit('getGroupDialogGroup', groupId);
} }
function updateGroupPostSearch() { function updateGroupPostSearch() {
emit('updateGroupPostSearch'); emit('updateGroupPostSearch');