import React, { useEffect } from 'react'; import { FiltersMap } from '@wix/bex-core'; import { observer } from 'mobx-react-lite'; import { TableGridSwitchButton } from '../TableGridSwitchButton'; import { GridFolders, GridFoldersBasePropsWithoutPreset, } from '../Grid/GridFolders'; import { TableGridSwitchFoldersState } from '../../state'; import { GridFoldersPresetProps } from '../Grid/GridFolders.types'; import { TableFolders, TableFoldersProps } from '../TableFolders'; import { InitialLoader } from '../InitialLoader'; export interface TableGridSwitchFoldersBaseProps< T1, F1 extends FiltersMap, T2, F2 extends FiltersMap, > extends Omit< GridFoldersBasePropsWithoutPreset, 'state' | 'dragAndDrop' | 'tableGridSwitchButton' >, Omit< TableFoldersProps, 'state' | 'dragAndDrop' | 'tableGridSwitchButton' > { /** A TableGridSwitchFoldersState instance created using [useTableGridSwitchFoldersState](./?path=/story/base-components-collections-tablegridswitchfolders-usetablegridswitchfolders--usetablegridswitchfolders). */ state: TableGridSwitchFoldersState; } export type TableGridSwitchFoldersProps< T1, F1 extends FiltersMap, T2, F2 extends FiltersMap, > = GridFoldersPresetProps< T1, T2, TableGridSwitchFoldersBaseProps >; function _TableGridSwitchFolders< T1, F1 extends FiltersMap, T2, F2 extends FiltersMap, >(props: TableGridSwitchFoldersProps) { const { state } = props; const { gridFoldersState, tableFoldersState, toolbar } = state; const tableGridSwitchButton = ( ); useEffect(() => { state.init(); }, []); const { initTask: { status }, } = state; const isLoading = status.isIdle || status.isLoading; return ( <> {isLoading ? ( ) : state.viewType === 'grid' ? ( ) : ( )} ); } export const TableGridSwitchFolders = observer(_TableGridSwitchFolders);