1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 10:08:52 +08:00
Files
sqliteviz/src/store/mutations.js
2025-09-27 21:59:32 +02:00

89 lines
2.1 KiB
JavaScript

export default {
setDb(state, db) {
if (state.db) {
state.db.shutDown()
}
state.db = db
},
updateTab(state, { tab, newValues }) {
const { name, id, query, viewType, viewOptions, isSaved, updatedAt } =
newValues
const oldId = tab.id
if (id && state.currentTabId === oldId) {
state.currentTabId = id
}
if (id) {
tab.id = id
}
if (name) {
tab.name = name
}
if (query) {
tab.query = query
}
if (viewType) {
tab.viewType = viewType
}
if (viewOptions) {
tab.viewOptions = viewOptions
}
if (isSaved !== undefined) {
tab.isSaved = isSaved
}
if (isSaved) {
// Saved inquiry is not predefined
delete tab.isPredefined
}
if (updatedAt) {
tab.updatedAt = updatedAt
}
},
deleteTab(state, tab) {
const index = state.tabs.indexOf(tab)
// If closing tab is the current opened
if (tab.id === state.currentTabId) {
if (index < state.tabs.length - 1) {
state.currentTabId = state.tabs[index + 1].id
} else if (index > 0) {
state.currentTabId = state.tabs[index - 1].id
} else {
state.currentTabId = null
state.untitledLastIndex = 0
}
state.currentTab = state.currentTabId
? state.tabs.find(tab => tab.id === state.currentTabId)
: null
}
state.tabs.splice(index, 1)
},
setCurrentTabId(state, id) {
try {
state.currentTabId = id
state.currentTab = state.tabs.find(tab => tab.id === id)
} catch (e) {
console.error("Can't open a tab id:" + id)
}
},
updatePredefinedInquiries(state, inquiries) {
state.predefinedInquiries = Array.isArray(inquiries)
? inquiries
: [inquiries]
},
setLoadingPredefinedInquiries(state, value) {
state.loadingPredefinedInquiries = value
},
setPredefinedInquiriesLoaded(state, value) {
state.predefinedInquiriesLoaded = value
},
setInquiries(state, value) {
state.inquiries = value
},
setIsWorkspaceVisible(state, value) {
state.isWorkspaceVisible = value
}
}