mirror of
https://github.com/Qortal/qapp-core.git
synced 2025-06-14 17:41:20 +00:00
fix useResources
This commit is contained in:
parent
dbd1e6adba
commit
b9432fa5e0
@ -1,5 +1,5 @@
|
|||||||
import React, { useCallback, useEffect, useMemo, useRef } from "react";
|
import React, { useCallback, useEffect, useMemo, useRef } from "react";
|
||||||
import { usePublishStore } from "../state/publishes";
|
import { ResourceStatus, usePublishStore } from "../state/publishes";
|
||||||
import { QortalGetMetadata } from "../types/interfaces/resources";
|
import { QortalGetMetadata } from "../types/interfaces/resources";
|
||||||
|
|
||||||
interface PropsUseResourceStatus {
|
interface PropsUseResourceStatus {
|
||||||
@ -15,9 +15,23 @@ export const useResourceStatus = ({
|
|||||||
const intervalRef = useRef<null | number>(null)
|
const intervalRef = useRef<null | number>(null)
|
||||||
const timeoutRef = useRef<null | number>(null)
|
const timeoutRef = useRef<null | number>(null)
|
||||||
const setResourceStatus = usePublishStore((state) => state.setResourceStatus);
|
const setResourceStatus = usePublishStore((state) => state.setResourceStatus);
|
||||||
|
const statusRef = useRef<ResourceStatus | null>(null)
|
||||||
|
|
||||||
|
useEffect(()=> {
|
||||||
|
statusRef.current = status
|
||||||
|
}, [status])
|
||||||
const downloadResource = useCallback(
|
const downloadResource = useCallback(
|
||||||
({ service, name, identifier }: QortalGetMetadata, build?: boolean) => {
|
({ service, name, identifier }: QortalGetMetadata, build?: boolean) => {
|
||||||
try {
|
try {
|
||||||
|
if(statusRef.current && statusRef.current?.status === 'READY'){
|
||||||
|
if (intervalRef.current) {
|
||||||
|
clearInterval(intervalRef.current);
|
||||||
|
}
|
||||||
|
if (timeoutRef.current) {
|
||||||
|
clearTimeout(timeoutRef.current);
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
setResourceStatus(
|
setResourceStatus(
|
||||||
{ service, name, identifier },
|
{ service, name, identifier },
|
||||||
{
|
{
|
||||||
|
@ -3,9 +3,10 @@
|
|||||||
export { useResourceStatus } from './hooks/useResourceStatus';
|
export { useResourceStatus } from './hooks/useResourceStatus';
|
||||||
export { Spacer } from './common/Spacer';
|
export { Spacer } from './common/Spacer';
|
||||||
export { useModal } from './hooks/useModal';
|
export { useModal } from './hooks/useModal';
|
||||||
export { AudioPlayerControls , OnTrackChangeMeta, AudioPlayerProps} from './components/AudioPlayer/AudioPlayerControls';
|
export { AudioPlayerControls , OnTrackChangeMeta, AudioPlayerProps, AudioPlayerHandle} from './components/AudioPlayer/AudioPlayerControls';
|
||||||
export { useAudioPlayerHotkeys } from './components/AudioPlayer/useAudioPlayerHotkeys';
|
export { useAudioPlayerHotkeys } from './components/AudioPlayer/useAudioPlayerHotkeys';
|
||||||
import './index.css'
|
import './index.css'
|
||||||
|
export { executeEvent, subscribeToEvent, unsubscribeFromEvent } from './utils/events';
|
||||||
export { formatBytes, formatDuration } from './utils/numbers';
|
export { formatBytes, formatDuration } from './utils/numbers';
|
||||||
export { createQortalLink } from './utils/qortal';
|
export { createQortalLink } from './utils/qortal';
|
||||||
export { IndexCategory } from './state/indexes';
|
export { IndexCategory } from './state/indexes';
|
||||||
|
11
src/utils/events.ts
Normal file
11
src/utils/events.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
export const executeEvent = (eventName: string, data: any)=> {
|
||||||
|
const event = new CustomEvent(eventName, {detail: data})
|
||||||
|
document.dispatchEvent(event)
|
||||||
|
}
|
||||||
|
export const subscribeToEvent = (eventName: string, listener: any)=> {
|
||||||
|
document.addEventListener(eventName, listener)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const unsubscribeFromEvent = (eventName: string, listener: any)=> {
|
||||||
|
document.removeEventListener(eventName, listener)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user