budibase/packages/client/src/stores/rowSelection.js

32 lines
745 B
JavaScript

import { get, writable } from "svelte/store"
const createRowSelectionStore = () => {
const store = writable({})
function updateSelection(componentId, tableId, selectedRows) {
store.update(state => {
state[componentId] = { tableId: tableId, selectedRows: selectedRows }
return state
})
}
function getSelection(tableComponentId) {
const selection = get(store)
const componentId = Object.keys(selection).find(
componentId => componentId === tableComponentId
)
return selection[componentId] || {}
}
return {
subscribe: store.subscribe,
set: store.set,
actions: {
updateSelection,
getSelection,
},
}
}
export const rowSelectionStore = createRowSelectionStore()