@spacelift-io/backstage-integration-frontend
Version:
Backstage plugin for integrating Spacelift.io with Backstage
30 lines (27 loc) • 843 B
JavaScript
import { useApi } from '@backstage/core-plugin-api';
import { useState, useCallback } from 'react';
import { spaceliftApiRef } from '../api/SpaceliftApiClient.esm.js';
const useTriggerRun = () => {
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const spaceliftApi = useApi(spaceliftApiRef);
const triggerRun = useCallback(
async (stackId) => {
setLoading(true);
setError(null);
try {
const response = await spaceliftApi.triggerRun(stackId);
return response;
} catch (err) {
setError(err);
return null;
} finally {
setLoading(false);
}
},
[spaceliftApi]
);
return { triggerRun, loading, error, clear: () => setError(null) };
};
export { useTriggerRun };
//# sourceMappingURL=useTriggerRun.esm.js.map