ywana-core8 0.0.989 → 0.0.991
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +39 -31
- package/dist/index.cjs.map +1 -1
- package/dist/index.modern.js +39 -31
- package/dist/index.modern.js.map +1 -1
- package/dist/index.umd.js +39 -31
- package/dist/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/incubator/task.js +21 -17
package/package.json
CHANGED
package/src/incubator/task.js
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useEffect, useContext, useState } from 'react'
|
1
|
+
import React, { useEffect, useContext, useState, useRef } from 'react'
|
2
2
|
import { CollectionAPI, FORMATS, TYPES } from '../domain'
|
3
3
|
import { Icon, DataTable, Header, LinearProgress, Text } from '../html'
|
4
4
|
import "./task.css"
|
@@ -15,28 +15,32 @@ export const TaskContextProvider = (props) => {
|
|
15
15
|
|
16
16
|
const { host, url = "/tasks", frequency = 1000, children, ctx } = props
|
17
17
|
const API = CollectionAPI(url, host, "")
|
18
|
-
const [
|
19
|
-
const appContext = useContext(
|
18
|
+
const [listeners, setListeners] = useState({})
|
19
|
+
const appContext = useContext(appContext)
|
20
|
+
const appContextRef = useRef(appContext)
|
20
21
|
|
21
22
|
useEffect(() => {
|
22
|
-
|
23
|
-
|
23
|
+
appContextRef.current = appContext
|
24
|
+
}, [appContext])
|
24
25
|
|
26
|
+
useEffect(() => {
|
27
|
+
if (Object.keys(listeners).length === 0) return
|
25
28
|
const _interval = setInterval(async () => {
|
26
|
-
|
27
|
-
for (let i = 0; i < taskIDs.length; i++) {
|
28
|
-
|
29
|
-
const taskID = taskIDs[i]
|
30
|
-
const tsk = await task(taskID)
|
31
|
-
|
32
|
-
const listener = listeners[taskID]
|
33
|
-
if (listener) listener(tsk,appContext)
|
34
|
-
|
35
|
-
}
|
29
|
+
executeListeners()
|
36
30
|
}, frequency)
|
37
31
|
return () => clearInterval(_interval)
|
38
32
|
}, [listeners])
|
39
33
|
|
34
|
+
async function executeListeners() {
|
35
|
+
const taskIDs = Object.keys(listeners)
|
36
|
+
for (let i = 0; i < taskIDs.length; i++) {
|
37
|
+
const taskID = taskIDs[i]
|
38
|
+
const tsk = await task(taskID)
|
39
|
+
const listener = listeners[taskID]
|
40
|
+
if (listener) listener(tsk, appContextRef.current)
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
40
44
|
async function tasks(filters, likes) {
|
41
45
|
try {
|
42
46
|
const response = await API.all(filters, likes);
|
@@ -227,8 +231,8 @@ export const TaskMonitor = (props) => {
|
|
227
231
|
setMinimized(!minimized)
|
228
232
|
}
|
229
233
|
|
230
|
-
|
231
|
-
|
234
|
+
const toggleIcon = minimized ? "expand_less" : "expand_more"
|
235
|
+
const viewStyle = minimized ? "minimized" : "" //
|
232
236
|
|
233
237
|
return (
|
234
238
|
<div className={`task-manager ${viewStyle}`}>
|