@xo-union/tk-component-header-nav
Version:
40 lines • 1.2 kB
JavaScript
import React from "react";
import noop from "lodash/noop";
import DataFetcher from "./DataFetcher/index.js";
import allowControl from "../../utils/allowControl.js";
const useWeddingVisionData = allowControl(() => {
const [data, setData] = React.useState({
isLoading: false,
hasWeddingVision: false,
hasFetchedWeddingVision: false
});
const fetchWeddingVisionData = loggedIn => {
if (loggedIn && !data.hasFetchedWeddingVision && !data.isLoading) {
setData({
isLoading: true,
hasWeddingVision: undefined
});
DataFetcher.fetchHasWeddingVision().then(result => {
setData({
isLoading: false,
hasWeddingVision: result,
hasFetchedWeddingVision: true
});
}).catch(() => {
setData({
isLoading: false,
hasWeddingVision: false,
hasFetchedWeddingVision: false
});
});
}
if (!loggedIn && data.hasFetchedWeddingVision) {
setData({
hasWeddingVision: false,
hasFetchedWeddingVision: false
});
}
};
return [data, fetchWeddingVisionData];
}, override => [override, noop]);
export default useWeddingVisionData;