mirror of
https://github.com/eigent-ai/eigent.git
synced 2026-04-29 04:00:09 +00:00
Initial commit of eigent-main
This commit is contained in:
commit
723df5a03e
1144 changed files with 103478 additions and 0 deletions
38
package/@stackframe/stack-shared/dist/esm/hooks/use-async-callback.js
vendored
Normal file
38
package/@stackframe/stack-shared/dist/esm/hooks/use-async-callback.js
vendored
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
// src/hooks/use-async-callback.tsx
|
||||
import React from "react";
|
||||
import { captureError } from "../utils/errors";
|
||||
function useAsyncCallback(callback, deps) {
|
||||
const [error, setError] = React.useState(void 0);
|
||||
const [loadingCount, setLoadingCount] = React.useState(0);
|
||||
const cb = React.useCallback(
|
||||
async (...args) => {
|
||||
setLoadingCount((c) => c + 1);
|
||||
try {
|
||||
return await callback(...args);
|
||||
} catch (e) {
|
||||
setError(e);
|
||||
throw e;
|
||||
} finally {
|
||||
setLoadingCount((c) => c - 1);
|
||||
}
|
||||
},
|
||||
deps
|
||||
);
|
||||
return [cb, loadingCount > 0, error];
|
||||
}
|
||||
function useAsyncCallbackWithLoggedError(callback, deps) {
|
||||
const [newCallback, loading] = useAsyncCallback(async (...args) => {
|
||||
try {
|
||||
return await callback(...args);
|
||||
} catch (e) {
|
||||
captureError("async-callback", e);
|
||||
throw e;
|
||||
}
|
||||
}, deps);
|
||||
return [newCallback, loading];
|
||||
}
|
||||
export {
|
||||
useAsyncCallback,
|
||||
useAsyncCallbackWithLoggedError
|
||||
};
|
||||
//# sourceMappingURL=use-async-callback.js.map
|
||||
Loading…
Add table
Add a link
Reference in a new issue