@xo-union/tk-component-header-nav
Version:
52 lines (51 loc) • 1.72 kB
JavaScript
"use strict";
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _noop = _interopRequireDefault(require("lodash/noop"));
var _indexCjs = _interopRequireDefault(require("./DataFetcher/index.cjs.js"));
var _allowControlCjs = _interopRequireDefault(require("../../utils/allowControl.cjs.js"));
const useWeddingWebsiteData = (0, _allowControlCjs.default)(() => {
const [data, setData] = _react.default.useState({
isLoading: false,
hasWeddingWebsite: false,
hasFetchedWws: false,
slug: ''
});
const fetchWeddingWebsiteData = loggedIn => {
if (loggedIn && !data.hasFetchedWws && !data.isLoading) {
setData({
isLoading: true,
hasWeddingWebsite: undefined
});
_indexCjs.default.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.default]);
var _default = useWeddingWebsiteData;
exports.default = _default;