Files
timeline-frontend/src/components/Hooks/useFetchImageUrl.ts

33 lines
779 B
TypeScript
Raw Normal View History

2025-08-05 19:02:14 +08:00
import { fetchImage } from '@/pages/story/service';
2025-07-22 22:52:55 +08:00
import { useRequest } from '@umijs/max';
import { useEffect, useState } from 'react';
const useFetchImageUrl = (imageInstanceId: string) => {
const [imageUrl, setImageUrl] = useState("error");
2025-08-04 16:56:39 +08:00
const { data: response, run, loading } = useRequest(
2025-07-22 22:52:55 +08:00
() => {
return fetchImage(imageInstanceId);
},
{
manual: true,
onSuccess: (data) => {
console.log(data);
},
},
);
useEffect(() => {
if (response) {
setImageUrl(URL.createObjectURL(response));
2025-08-05 19:02:14 +08:00
} else {
setImageUrl("error");
2025-07-22 22:52:55 +08:00
}
}, [response]);
useEffect(() => {
if (imageInstanceId) {
run();
}
}, [imageInstanceId]);
2025-08-04 16:56:39 +08:00
return {imageUrl, loading};
2025-07-22 22:52:55 +08:00
};
export default useFetchImageUrl;