Fix ui actions usage

This commit is contained in:
Adria Navarro 2024-12-27 18:15:33 +01:00
parent c1c95a6073
commit e7920aeb34
1 changed files with 14 additions and 5 deletions

View File

@ -40,12 +40,21 @@ export interface UIDerivedStore {
compact: Readable<boolean> compact: Readable<boolean>
selectedRowCount: Readable<number> selectedRowCount: Readable<number>
isSelectingCells: Readable<boolean> isSelectingCells: Readable<boolean>
selectedCells: Readable<string[][]> & { actions: any } selectedCells: Readable<string[][]>
selectedCellMap: Readable<Record<string, boolean>> selectedCellMap: Readable<Record<string, boolean>>
selectedCellCount: Readable<number> selectedCellCount: Readable<number>
} }
export type Store = UIStore & UIDerivedStore interface UIActionStore {
selectedCells: UIDerivedStore["selectedCells"] & {
actions: {
clear: () => void
selectRange: (source: string | null, target: string | null) => void
}
}
}
export type Store = UIStore & UIDerivedStore & UIActionStore
export const createStores = (context: StoreContext): UIStore => { export const createStores = (context: StoreContext): UIStore => {
const { props } = context const { props } = context
@ -82,7 +91,7 @@ export const createStores = (context: StoreContext): UIStore => {
} }
} }
export const deriveStores = (context: StoreContext) => { export const deriveStores = (context: StoreContext): UIDerivedStore => {
const { const {
focusedCellId, focusedCellId,
rows, rows,
@ -97,14 +106,14 @@ export const deriveStores = (context: StoreContext) => {
// Derive the current focused row ID // Derive the current focused row ID
const focusedRowId = derived(focusedCellId, $focusedCellId => { const focusedRowId = derived(focusedCellId, $focusedCellId => {
return parseCellID($focusedCellId).rowId return parseCellID($focusedCellId).rowId ?? null
}) })
// Derive the row that contains the selected cell // Derive the row that contains the selected cell
const focusedRow = derived( const focusedRow = derived(
[focusedRowId, rowLookupMap], [focusedRowId, rowLookupMap],
([$focusedRowId, $rowLookupMap]) => { ([$focusedRowId, $rowLookupMap]) => {
if ($focusedRowId === undefined) { if ($focusedRowId === null) {
return return
} }