mirror of
https://github.com/grafana/grafana.git
synced 2025-08-01 05:11:50 +08:00

* Update the generator to include version * Add versioned APIs * Update imports * Prettier
29 lines
970 B
TypeScript
29 lines
970 B
TypeScript
import { createSelector } from '@reduxjs/toolkit';
|
|
|
|
import { RootState } from 'app/store/configureStore';
|
|
|
|
import { Repository, provisioningAPIv0alpha1 as provisioningAPI } from '../../../api/clients/provisioning/v0alpha1';
|
|
|
|
const emptyRepos: Repository[] = [];
|
|
|
|
const baseSelector = provisioningAPI.endpoints.listRepository.select({});
|
|
|
|
export const selectAllRepos = createSelector(baseSelector, (result) => result.data?.items || emptyRepos);
|
|
|
|
export const selectFolderRepository = createSelector(
|
|
selectAllRepos,
|
|
(_, folderUid?: string) => folderUid,
|
|
(repositories: Repository[], folderUid) => {
|
|
if (!folderUid) {
|
|
return undefined;
|
|
}
|
|
return repositories.find((repo: Repository) => repo.metadata?.name === folderUid);
|
|
}
|
|
);
|
|
|
|
export const selectRepoByName = createSelector(
|
|
selectAllRepos,
|
|
(state: RootState, id: string) => id,
|
|
(repositories: Repository[], name) => repositories.find((repo: Repository) => repo.metadata?.name === name)
|
|
);
|