wappsto-blanket
Advanced tools
Comparing version 0.1.6 to 0.1.7
import { useMemo } from 'react'; | ||
import { useSelector } from 'react-redux'; | ||
import { makeEntitySelector } from 'wappsto-redux/selectors/entities'; | ||
const useEntitySelector = (type) => useMemo(() => { | ||
const getEntity = makeEntitySelector(); | ||
return (state, options) => getEntity(state, type, options); | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, []); | ||
const useEntitySelector = (type, options) => { | ||
const getEntity = useMemo(makeEntitySelector, []); | ||
const entity = useSelector(state => getEntity(state, type, options)); | ||
return entity; | ||
} | ||
export default useEntitySelector; |
import { useState, useEffect, useRef, useCallback, useMemo } from 'react'; | ||
import { useSelector, useDispatch } from 'react-redux'; | ||
import { makeRequest, removeRequest } from 'wappsto-redux/actions/request'; | ||
import { setItem } from 'wappsto-redux/actions/items'; | ||
@@ -24,3 +23,3 @@ import { makeEntitiesSelector } from 'wappsto-redux/selectors/entities'; | ||
const prevIds = usePrevious(ids); | ||
const missingIds = useRef(); | ||
const missingIds = useRef([]); | ||
const dispatch = useDispatch(); | ||
@@ -65,15 +64,6 @@ const [ items, setItems] = useState([]); | ||
const { request, requestId, setRequestId } = useRequest(); | ||
const { request, send, removeRequest } = useRequest(); | ||
// Update cache when request is over | ||
useEffect(() => { | ||
if(request){ | ||
setCacheStatus(dispatch, missingIds.current, request.status, query); | ||
} | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, [request]); | ||
// Make request to get the ids | ||
useEffect(() => { | ||
if(matchArray(ids, prevIds)){ | ||
const getMissingIds = (checkIds = true) => { | ||
if(checkIds && matchArray(ids, prevIds)){ | ||
return; | ||
@@ -86,5 +76,5 @@ } | ||
} | ||
dispatch(removeRequest(requestId)); | ||
removeRequest(); | ||
setCacheStatus(dispatch, missingIds.current, 'pending', query); | ||
const lastRequestId = dispatch(makeRequest({ | ||
send({ | ||
method: 'GET', | ||
@@ -96,6 +86,18 @@ url: '/' + service, | ||
} | ||
})); | ||
setRequestId(lastRequestId); | ||
}); | ||
} | ||
} | ||
// Update cache when request is over | ||
useEffect(() => { | ||
if(request){ | ||
setCacheStatus(dispatch, missingIds.current, request.status, query); | ||
} | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, [request]); | ||
// Make request to get the ids | ||
useEffect(() => { | ||
getMissingIds(); | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, [dispatch, service, updateMissingIds, ids]); | ||
@@ -137,5 +139,14 @@ | ||
return { items, status, setStatus, reset }; | ||
// Refresh | ||
const refresh = useCallback((callReset = true) => { | ||
if(callReset){ | ||
reset(); | ||
} | ||
getMissingIds(false); | ||
// eslint-disable-next-line react-hooks/exhaustive-deps | ||
}, [ids]); | ||
return { items, status, setStatus, reset, refresh }; | ||
} | ||
export default useIds; |
@@ -185,3 +185,3 @@ import { useState, useEffect, useCallback, useRef, useMemo } from 'react'; | ||
if(request.json.constructor === Array){ | ||
ids = [...(ids || []), ...request.json.map(item => ({ meta: { id: item.meta.id }}))]; | ||
ids = [...(ids || []), ...request.json.map(item => item.constructor === Object ? ({ meta: { id: item.meta.id }}) : ({ meta: { id: item }}))]; | ||
} else if(request.json.meta.type === 'attributelist'){ | ||
@@ -188,0 +188,0 @@ ids = [propsData.id]; |
{ | ||
"name": "wappsto-blanket", | ||
"version": "0.1.6", | ||
"version": "0.1.7", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "scripts": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
28796
16
865