refactor: store state

This commit is contained in:
pa
2025-10-11 15:30:44 +09:00
committed by Natsumi
parent 1e18d89b61
commit 86f7847c46
31 changed files with 2719 additions and 4029 deletions

View File

@@ -1,5 +1,5 @@
import { defineStore } from 'pinia';
import { computed, reactive, watch } from 'vue';
import { ref, watch } from 'vue';
import { ElMessage } from 'element-plus';
import { instanceRequest, inviteMessagesRequest } from '../api';
import { watchState } from '../service/watchState';
@@ -14,109 +14,77 @@ export const useInviteStore = defineStore('Invite', () => {
const gameStore = useGameStore();
const launchStore = useLaunchStore();
const advancedSettingsStore = useAdvancedSettingsStore();
const state = reactive({
editInviteMessageDialog: {
visible: false,
inviteMessage: {},
messageType: '',
newMessage: ''
const editInviteMessageDialog = ref({
visible: false,
inviteMessage: {},
messageType: '',
newMessage: ''
});
const inviteMessageTable = ref({
data: [],
tableProps: {
stripe: true,
size: 'small'
},
inviteMessageTable: {
data: [],
tableProps: {
stripe: true,
size: 'small'
},
layout: 'table',
visible: false
layout: 'table',
visible: false
});
const inviteResponseMessageTable = ref({
data: [],
tableProps: {
stripe: true,
size: 'small'
},
inviteResponseMessageTable: {
data: [],
tableProps: {
stripe: true,
size: 'small'
},
layout: 'table',
visible: false
layout: 'table',
visible: false
});
const inviteRequestMessageTable = ref({
data: [],
tableProps: {
stripe: true,
size: 'small'
},
inviteRequestMessageTable: {
data: [],
tableProps: {
stripe: true,
size: 'small'
},
layout: 'table',
visible: false
layout: 'table',
visible: false
});
const inviteRequestResponseMessageTable = ref({
data: [],
tableProps: {
stripe: true,
size: 'small'
},
inviteRequestResponseMessageTable: {
data: [],
tableProps: {
stripe: true,
size: 'small'
},
layout: 'table',
visible: false
}
layout: 'table',
visible: false
});
watch(
() => watchState.isLoggedIn,
() => {
state.inviteMessageTable.data = [];
state.inviteResponseMessageTable.data = [];
state.inviteRequestMessageTable.data = [];
state.inviteRequestResponseMessageTable.data = [];
state.editInviteMessageDialog.visible = false;
state.inviteMessageTable.visible = false;
state.inviteResponseMessageTable.visible = false;
state.inviteRequestMessageTable.visible = false;
state.inviteRequestResponseMessageTable.visible = false;
inviteMessageTable.value.data = [];
inviteResponseMessageTable.value.data = [];
inviteRequestMessageTable.value.data = [];
inviteRequestResponseMessageTable.value.data = [];
editInviteMessageDialog.value.visible = false;
inviteMessageTable.value.visible = false;
inviteResponseMessageTable.value.visible = false;
inviteRequestMessageTable.value.visible = false;
inviteRequestResponseMessageTable.value.visible = false;
},
{ flush: 'sync' }
);
const editInviteMessageDialog = computed({
get: () => state.editInviteMessageDialog,
set: (value) => {
state.editInviteMessageDialog = value;
}
});
const inviteMessageTable = computed({
get: () => state.inviteMessageTable,
set: (value) => {
state.inviteMessageTable = value;
}
});
const inviteResponseMessageTable = computed({
get: () => state.inviteResponseMessageTable,
set: (value) => {
state.inviteResponseMessageTable = value;
}
});
const inviteRequestMessageTable = computed({
get: () => state.inviteRequestMessageTable,
set: (value) => {
state.inviteRequestMessageTable = value;
}
});
const inviteRequestResponseMessageTable = computed({
get: () => state.inviteRequestResponseMessageTable,
set: (value) => {
state.inviteRequestResponseMessageTable = value;
}
});
/**
*
* @param {string} messageType
* @param {any} inviteMessage
*/
function showEditInviteMessageDialog(messageType, inviteMessage) {
const D = state.editInviteMessageDialog;
const D = editInviteMessageDialog.value;
D.newMessage = inviteMessage.message;
D.visible = true;
D.inviteMessage = inviteMessage;
@@ -133,16 +101,16 @@ export const useInviteStore = defineStore('Invite', () => {
.then(({ json }) => {
switch (mode) {
case 'message':
state.inviteMessageTable.data = json;
inviteMessageTable.value.data = json;
break;
case 'response':
state.inviteResponseMessageTable.data = json;
inviteResponseMessageTable.value.data = json;
break;
case 'request':
state.inviteRequestMessageTable.data = json;
inviteRequestMessageTable.value.data = json;
break;
case 'requestResponse':
state.inviteRequestResponseMessageTable.data = json;
inviteRequestResponseMessageTable.value.data = json;
break;
}
})
@@ -196,8 +164,6 @@ export const useInviteStore = defineStore('Invite', () => {
}
return {
state,
editInviteMessageDialog,
inviteMessageTable,
inviteResponseMessageTable,