mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-06 18:18:53 +08:00
68 lines
1.6 KiB
JavaScript
68 lines
1.6 KiB
JavaScript
import Vue from 'vue'
|
|
import Vuex from 'vuex'
|
|
|
|
Vue.use(Vuex)
|
|
|
|
export default new Vuex.Store({
|
|
state: {
|
|
schema: null,
|
|
dbFile: null,
|
|
dbName: null,
|
|
worker: new Worker('js/worker.sql-wasm.js'),
|
|
tabs: [],
|
|
currentTab: null,
|
|
currentTabId: null,
|
|
untitledLastIndex: 0
|
|
},
|
|
mutations: {
|
|
saveSchema (state, schema) {
|
|
state.schema = schema
|
|
},
|
|
saveDbFile (state, file) {
|
|
state.dbFile = file
|
|
},
|
|
saveDbName (state, name) {
|
|
state.dbName = name
|
|
},
|
|
addTab (state, tab) {
|
|
state.tabs.push(tab)
|
|
},
|
|
updateTabName (state, { index, newName }) {
|
|
const tab = state.tabs[index]
|
|
tab.name = newName
|
|
Vue.set(state.tabs, index, tab)
|
|
},
|
|
updateTabState (state, { index, newValue }) {
|
|
console.log(index, newValue)
|
|
const tab = state.tabs[index]
|
|
tab.isUnsaved = newValue
|
|
Vue.set(state.tabs, index, tab)
|
|
},
|
|
deleteTab (state, index) {
|
|
if (state.tabs[index].id !== state.currentTabId) {
|
|
} else 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.tabs.splice(index, 1)
|
|
},
|
|
setCurrentTabId (state, id) {
|
|
state.currentTabId = id
|
|
},
|
|
setCurrentTab (state, tab) {
|
|
state.currentTab = tab
|
|
},
|
|
updateUntitledLastIndex (state) {
|
|
state.untitledLastIndex += 1
|
|
}
|
|
},
|
|
actions: {
|
|
},
|
|
modules: {
|
|
}
|
|
})
|