UNPKG

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

Version:
43 lines 1.24 kB
import React from "react"; import noop from "lodash/noop"; import DataFetcher from "./DataFetcher/index.js"; import allowControl from "../../utils/allowControl.js"; const useWeddingWebsiteData = allowControl(() => { const [data, setData] = React.useState({ isLoading: false, hasWeddingWebsite: false, hasFetchedWws: false, slug: '' }); const fetchWeddingWebsiteData = loggedIn => { if (loggedIn && !data.hasFetchedWws && !data.isLoading) { setData({ isLoading: true, hasWeddingWebsite: undefined }); DataFetcher.fetchWeddingWebsiteAttributes().then(result => { setData({ isLoading: false, hasFetchedWws: true, hasWeddingWebsite: result.state === 'published', slug: result.slug }); }).catch(() => { setData({ isLoading: false, hasWeddingWebsite: false, hasFetchedWws: false, slug: '' }); }); } if (!loggedIn && data.hasFetchedWws) { setData({ hasWeddingWebsite: false, hasFetchedWws: false }); } }; return [data, fetchWeddingWebsiteData]; }, override => [override, noop]); export default useWeddingWebsiteData;