123456789101112131415161718192021222324252627282930313233 |
- import { createSelector } from '@reduxjs/toolkit';
- import { RootState } from 'redux/interfaces';
- import { createFetchingSelector } from 'redux/reducers/loader/selectors';
- import { KsqlState } from 'redux/interfaces/ksqlDb';
- import { AsyncRequestStatus } from 'lib/constants';
- const ksqlDbState = ({ ksqlDb }: RootState): KsqlState => ksqlDb;
- const getKsqlDbFetchTablesAndStreamsFetchingStatus = createFetchingSelector(
- 'ksqlDb/fetchKsqlDbTables'
- );
- const getKsqlExecutionStatus = createFetchingSelector('ksqlDb/executeKsql');
- export const getKsqlDbTables = createSelector(
- [ksqlDbState, getKsqlDbFetchTablesAndStreamsFetchingStatus],
- (state, status) => ({
- rows: { streams: [...state.streams], tables: [...state.tables] },
- fetched: status === AsyncRequestStatus.fulfilled,
- fetching: status === AsyncRequestStatus.pending,
- tablesCount: state.tables.length,
- streamsCount: state.streams.length,
- })
- );
- export const getKsqlExecution = createSelector(
- [ksqlDbState, getKsqlExecutionStatus],
- (state, status) => ({
- executionResult: state.executionResult,
- fetched: status === AsyncRequestStatus.fulfilled,
- fetching: status === AsyncRequestStatus.pending,
- })
- );
|