Files
grafana/public/app/features/provisioning/hooks/useCreateOrUpdateRepositoryFile.ts
Ashley Harrison dd07d3dbbe API client generation: centralise api clients (#102186)
* centralise iam api

* centralise folder api client

* rename to baseAPI

* centralise provisioning api

* remove iam feature folder from CODEOWNERS

* fix type name

* Update public/app/features/provisioning/utils/selectors.ts

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>

---------

Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com>
2025-03-14 14:34:36 +00:00

23 lines
726 B
TypeScript

import { useCallback } from 'react';
import {
ReplaceRepositoryFilesWithPathApiArg,
useCreateRepositoryFilesWithPathMutation,
useReplaceRepositoryFilesWithPathMutation,
} from '../../../api/clients/provisioning';
export function useCreateOrUpdateRepositoryFile(name?: string) {
const [create, createRequest] = useCreateRepositoryFilesWithPathMutation();
const [update, updateRequest] = useReplaceRepositoryFilesWithPathMutation();
const updateOrCreate = useCallback(
(data: ReplaceRepositoryFilesWithPathApiArg) => {
const actions = name ? update : create;
return actions(data);
},
[create, name, update]
);
return [updateOrCreate, name ? updateRequest : createRequest] as const;
}