UNPKG

@xo-union/tk-component-header-nav

Version:
40 lines 1.2 kB
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;