fix reading publishes

This commit is contained in:
PhilReact 2024-12-21 21:29:54 +02:00
parent e9dddfbf88
commit d5a45007c4
3 changed files with 19 additions and 12 deletions

View File

@ -5,7 +5,6 @@ import { getBaseApiReact } from '../App';
export const useFetchResources = () => {
const [resources, setResources] = useRecoilState(resourceDownloadControllerAtom);
const intervalId = useRef(null)
const downloadResource = useCallback(({ service, name, identifier }, build) => {
setResources((prev) => ({
@ -24,7 +23,8 @@ export const useFetchResources = () => {
let timer = 24;
let tries = 0;
let calledFirstTime = false
let intervalId
let timeoutId
const callFunction = async ()=> {
if (isCalling) return;
isCalling = true;
@ -43,8 +43,11 @@ export const useFetchResources = () => {
});
res = await resCall.json()
if(tries > 18 ){
if(intervalId?.current){
clearInterval(intervalId?.current)
if(intervalId){
clearInterval(intervalId)
}
if(timeoutId){
clearTimeout(timeoutId)
}
setResources((prev) => ({
...prev,
@ -64,7 +67,7 @@ export const useFetchResources = () => {
if(build || (calledFirstTime === false && res?.status !== 'READY')){
const url = `${getBaseApiReact()}/arbitrary/resource/status/${service}/${name}/${identifier}?build=true`;
const url = `${getBaseApiReact()}/arbitrary/resource/properties/${service}/${name}/${identifier}?build=true`;
const resCall = await fetch(url, {
method: "GET",
headers: {
@ -101,10 +104,11 @@ export const useFetchResources = () => {
},
}));
setTimeout(() => {
timeoutId = setTimeout(() => {
isCalling = false;
downloadResource({ name, service, identifier }, true);
}, 25000);
return;
}
@ -123,11 +127,13 @@ export const useFetchResources = () => {
// Check if progress is 100% and clear interval if true
if (res?.status === 'READY') {
if(intervalId.current){
clearInterval(intervalId.current);
if(intervalId){
clearInterval(intervalId);
}
if(timeoutId){
clearTimeout(timeoutId)
}
// Update Recoil state for completion
setResources((prev) => ({
...prev,
@ -149,7 +155,7 @@ export const useFetchResources = () => {
}
}
callFunction()
intervalId.current = setInterval(async () => {
intervalId = setInterval(async () => {
callFunction()
}, 5000);

View File

@ -110,7 +110,8 @@ export const handleUnencryptedPublishes = (publishes) => {
let publishesData = []
publishes.forEach((pub)=> {
try {
const decodedData = JSON.parse(atob(pub))
const decryptToUnit8Array = base64ToUint8Array(pub);
const decodedData = uint8ArrayToObject(decryptToUnit8Array);
if(decodedData){
publishesData.push({decryptedData: decodedData})
}

View File

@ -493,7 +493,7 @@ export const VideoPlayer: React.FC<VideoPlayerProps> = ({
<>Download Completed: building tutorial video...</>
) : resourceStatus?.status !== 'READY' ? (
<>
{getDownloadProgress(resourceStatus?.localChunkCount, resourceStatus?.totalChunkCount)}
{getDownloadProgress(resourceStatus?.localChunkCount || 0, resourceStatus?.totalChunkCount || 100)}
</>
) : (