Files
coopgo/node_modules/react-topbar-progress-indicator/src/index.js
sgauthier 6e64e138e2
All checks were successful
Publish To Prod / deploy_and_publish (push) Successful in 35s
planning
2024-10-14 09:15:30 +02:00

48 lines
822 B
JavaScript

// @flow
var React = require("react");
// topbar require window, so here is an universal workaround
var topbar =
typeof window === "undefined"
? {
show: function() {},
hide: function() {},
config: function() {}
}
: require("topbar");
var semaphore /*: number*/ = 0;
/*::
type Props = {
topbar?: typeof topbar
};
*/
var getTopBar = function(props /*: Props*/) /*: typeof topbar*/ {
return props.topbar || topbar;
};
function TopBar(props /*: Props */) {
React.useEffect(function() {
if (semaphore === 0) {
getTopBar(props).show();
}
semaphore++;
return function() {
semaphore--;
if (semaphore === 0) {
getTopBar(props).hide();
}
};
}, []);
return null;
}
TopBar.config = topbar.config;
module.exports = TopBar;