mirror of
https://github.com/grafana/grafana.git
synced 2025-07-30 16:02:31 +08:00

* Move dashboard-scene, provisioned dashboard features, and dashboard services/types from grafana-git-ui-sync branch * Merge * Update props order * Fix imports * Fix imports * Update dashboard page * Update imports * Update test * Tweaks * Remove extra mocks * Split out utils * Translate * Revert * Add translations * Add comment * Prettier * Add comment * Use AnnoKeyManagerIdentity * Add manager kind
26 lines
929 B
TypeScript
26 lines
929 B
TypeScript
import { skipToken } from '@reduxjs/toolkit/query/react';
|
|
|
|
import { useGetFolderQuery } from '../../../api/clients/folder';
|
|
import { AnnoKeyManagerIdentity } from '../../apiserver/types';
|
|
|
|
import { useRepositoryList } from './useRepositoryList';
|
|
|
|
interface GetResourceRepositoryArgs {
|
|
name?: string;
|
|
folderUid?: string;
|
|
}
|
|
|
|
export const useGetResourceRepository = ({ name, folderUid }: GetResourceRepositoryArgs) => {
|
|
const [items, isLoading] = useRepositoryList(name || !folderUid ? skipToken : undefined);
|
|
// Get the folder data from API to get the repository data for nested folders
|
|
const folderQuery = useGetFolderQuery(name || !folderUid ? skipToken : { name: folderUid });
|
|
|
|
const repoName = name || folderQuery.data?.metadata?.annotations?.[AnnoKeyManagerIdentity];
|
|
|
|
if (!items?.length || isLoading || !repoName) {
|
|
return undefined;
|
|
}
|
|
|
|
return items.find((repo) => repo.metadata?.name === repoName);
|
|
};
|