payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
114 lines (113 loc) • 9.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
ThemeProvider: function() {
return ThemeProvider;
},
default: function() {
return _default;
},
useTheme: function() {
return useTheme;
}
});
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const initialContext = {
autoMode: true,
setTheme: ()=>null,
theme: 'light'
};
const Context = /*#__PURE__*/ (0, _react.createContext)(initialContext);
const localStorageKey = 'payload-theme';
const getTheme = ()=>{
let theme;
const themeFromStorage = window.localStorage.getItem(localStorageKey);
if (themeFromStorage === 'light' || themeFromStorage === 'dark') {
theme = themeFromStorage;
} else {
theme = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
}
document.documentElement.setAttribute('data-theme', theme);
return theme;
};
const ThemeProvider = ({ children })=>{
const [theme, setThemeState] = (0, _react.useState)(getTheme);
const [autoMode, setAutoMode] = (0, _react.useState)(()=>{
const themeFromStorage = window.localStorage.getItem(localStorageKey);
return !themeFromStorage;
});
const setTheme = (0, _react.useCallback)((themeToSet)=>{
if (themeToSet === 'light' || themeToSet === 'dark') {
setThemeState(themeToSet);
setAutoMode(false);
window.localStorage.setItem(localStorageKey, themeToSet);
document.documentElement.setAttribute('data-theme', themeToSet);
} else if (themeToSet === 'auto') {
const existingThemeFromStorage = window.localStorage.getItem(localStorageKey);
if (existingThemeFromStorage) window.localStorage.removeItem(localStorageKey);
const themeFromOS = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
document.documentElement.setAttribute('data-theme', themeFromOS);
setAutoMode(true);
setThemeState(themeFromOS);
}
}, []);
return /*#__PURE__*/ _react.default.createElement(Context.Provider, {
value: {
autoMode,
setTheme,
theme
}
}, children);
};
const useTheme = ()=>(0, _react.useContext)(Context);
const _default = Context;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9UaGVtZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNhbGxiYWNrLCB1c2VDb250ZXh0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgdHlwZSBUaGVtZSA9ICdkYXJrJyB8ICdsaWdodCdcblxuZXhwb3J0IHR5cGUgVGhlbWVDb250ZXh0ID0ge1xuICBhdXRvTW9kZTogYm9vbGVhblxuICBzZXRUaGVtZTogKHRoZW1lOiBUaGVtZSkgPT4gdm9pZFxuICB0aGVtZTogVGhlbWVcbn1cblxuY29uc3QgaW5pdGlhbENvbnRleHQ6IFRoZW1lQ29udGV4dCA9IHtcbiAgYXV0b01vZGU6IHRydWUsXG4gIHNldFRoZW1lOiAoKSA9PiBudWxsLFxuICB0aGVtZTogJ2xpZ2h0Jyxcbn1cblxuY29uc3QgQ29udGV4dCA9IGNyZWF0ZUNvbnRleHQoaW5pdGlhbENvbnRleHQpXG5cbmNvbnN0IGxvY2FsU3RvcmFnZUtleSA9ICdwYXlsb2FkLXRoZW1lJ1xuXG5jb25zdCBnZXRUaGVtZSA9ICgpID0+IHtcbiAgbGV0IHRoZW1lOiBUaGVtZVxuICBjb25zdCB0aGVtZUZyb21TdG9yYWdlID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGxvY2FsU3RvcmFnZUtleSlcblxuICBpZiAodGhlbWVGcm9tU3RvcmFnZSA9PT0gJ2xpZ2h0JyB8fCB0aGVtZUZyb21TdG9yYWdlID09PSAnZGFyaycpIHtcbiAgICB0aGVtZSA9IHRoZW1lRnJvbVN0b3JhZ2VcbiAgfSBlbHNlIHtcbiAgICB0aGVtZSA9XG4gICAgICB3aW5kb3cubWF0Y2hNZWRpYSAmJiB3aW5kb3cubWF0Y2hNZWRpYSgnKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKScpLm1hdGNoZXNcbiAgICAgICAgPyAnZGFyaydcbiAgICAgICAgOiAnbGlnaHQnXG4gIH1cblxuICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgdGhlbWUpXG4gIHJldHVybiB0aGVtZVxufVxuXG5leHBvcnQgY29uc3QgVGhlbWVQcm92aWRlcjogUmVhY3QuRkM8eyBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZSB9PiA9ICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgY29uc3QgW3RoZW1lLCBzZXRUaGVtZVN0YXRlXSA9IHVzZVN0YXRlPFRoZW1lPihnZXRUaGVtZSlcbiAgY29uc3QgW2F1dG9Nb2RlLCBzZXRBdXRvTW9kZV0gPSB1c2VTdGF0ZSgoKSA9PiB7XG4gICAgY29uc3QgdGhlbWVGcm9tU3RvcmFnZSA9IHdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShsb2NhbFN0b3JhZ2VLZXkpXG4gICAgcmV0dXJuICF0aGVtZUZyb21TdG9yYWdlXG4gIH0pXG5cbiAgY29uc3Qgc2V0VGhlbWUgPSB1c2VDYWxsYmFjaygodGhlbWVUb1NldDogJ2F1dG8nIHwgVGhlbWUpID0+IHtcbiAgICBpZiAodGhlbWVUb1NldCA9PT0gJ2xpZ2h0JyB8fCB0aGVtZVRvU2V0ID09PSAnZGFyaycpIHtcbiAgICAgIHNldFRoZW1lU3RhdGUodGhlbWVUb1NldClcbiAgICAgIHNldEF1dG9Nb2RlKGZhbHNlKVxuICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGxvY2FsU3RvcmFnZUtleSwgdGhlbWVUb1NldClcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZVRvU2V0KVxuICAgIH0gZWxzZSBpZiAodGhlbWVUb1NldCA9PT0gJ2F1dG8nKSB7XG4gICAgICBjb25zdCBleGlzdGluZ1RoZW1lRnJvbVN0b3JhZ2UgPSB3aW5kb3cubG9jYWxTdG9yYWdlLmdldEl0ZW0obG9jYWxTdG9yYWdlS2V5KVxuICAgICAgaWYgKGV4aXN0aW5nVGhlbWVGcm9tU3RvcmFnZSkgd2luZG93LmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGxvY2FsU3RvcmFnZUtleSlcbiAgICAgIGNvbnN0IHRoZW1lRnJvbU9TID1cbiAgICAgICAgd2luZG93Lm1hdGNoTWVkaWEgJiYgd2luZG93Lm1hdGNoTWVkaWEoJyhwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyayknKS5tYXRjaGVzXG4gICAgICAgICAgPyAnZGFyaydcbiAgICAgICAgICA6ICdsaWdodCdcbiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCB0aGVtZUZyb21PUylcbiAgICAgIHNldEF1dG9Nb2RlKHRydWUpXG4gICAgICBzZXRUaGVtZVN0YXRlKHRoZW1lRnJvbU9TKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgcmV0dXJuIDxDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt7IGF1dG9Nb2RlLCBzZXRUaGVtZSwgdGhlbWUgfX0+e2NoaWxkcmVufTwvQ29udGV4dC5Qcm92aWRlcj5cbn1cblxuZXhwb3J0IGNvbnN0IHVzZVRoZW1lID0gKCk6IFRoZW1lQ29udGV4dCA9PiB1c2VDb250ZXh0KENvbnRleHQpXG5cbmV4cG9ydCBkZWZhdWx0IENvbnRleHRcbiJdLCJuYW1lcyI6WyJUaGVtZVByb3ZpZGVyIiwidXNlVGhlbWUiLCJpbml0aWFsQ29udGV4dCIsImF1dG9Nb2RlIiwic2V0VGhlbWUiLCJ0aGVtZSIsIkNvbnRleHQiLCJjcmVhdGVDb250ZXh0IiwibG9jYWxTdG9yYWdlS2V5IiwiZ2V0VGhlbWUiLCJ0aGVtZUZyb21TdG9yYWdlIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIm1hdGNoTWVkaWEiLCJtYXRjaGVzIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJjaGlsZHJlbiIsInNldFRoZW1lU3RhdGUiLCJ1c2VTdGF0ZSIsInNldEF1dG9Nb2RlIiwidXNlQ2FsbGJhY2siLCJ0aGVtZVRvU2V0Iiwic2V0SXRlbSIsImV4aXN0aW5nVGhlbWVGcm9tU3RvcmFnZSIsInJlbW92ZUl0ZW0iLCJ0aGVtZUZyb21PUyIsIlByb3ZpZGVyIiwidmFsdWUiLCJ1c2VDb250ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXFDYUEsYUFBYTtlQUFiQTs7SUErQmIsT0FBc0I7ZUFBdEI7O0lBRmFDLFFBQVE7ZUFBUkE7OzsrREFsRTJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVeEUsTUFBTUMsaUJBQStCO0lBQ25DQyxVQUFVO0lBQ1ZDLFVBQVUsSUFBTTtJQUNoQkMsT0FBTztBQUNUO0FBRUEsTUFBTUMsd0JBQVVDLElBQUFBLG9CQUFhLEVBQUNMO0FBRTlCLE1BQU1NLGtCQUFrQjtBQUV4QixNQUFNQyxXQUFXO0lBQ2YsSUFBSUo7SUFDSixNQUFNSyxtQkFBbUJDLE9BQU9DLFlBQVksQ0FBQ0MsT0FBTyxDQUFDTDtJQUVyRCxJQUFJRSxxQkFBcUIsV0FBV0EscUJBQXFCLFFBQVE7UUFDL0RMLFFBQVFLO0lBQ1YsT0FBTztRQUNMTCxRQUNFTSxPQUFPRyxVQUFVLElBQUlILE9BQU9HLFVBQVUsQ0FBQyxnQ0FBZ0NDLE9BQU8sR0FDMUUsU0FDQTtJQUNSO0lBRUFDLFNBQVNDLGVBQWUsQ0FBQ0MsWUFBWSxDQUFDLGNBQWNiO0lBQ3BELE9BQU9BO0FBQ1Q7QUFFTyxNQUFNTCxnQkFBMEQsQ0FBQyxFQUFFbUIsUUFBUSxFQUFFO0lBQ2xGLE1BQU0sQ0FBQ2QsT0FBT2UsY0FBYyxHQUFHQyxJQUFBQSxlQUFRLEVBQVFaO0lBQy9DLE1BQU0sQ0FBQ04sVUFBVW1CLFlBQVksR0FBR0QsSUFBQUEsZUFBUSxFQUFDO1FBQ3ZDLE1BQU1YLG1CQUFtQkMsT0FBT0MsWUFBWSxDQUFDQyxPQUFPLENBQUNMO1FBQ3JELE9BQU8sQ0FBQ0U7SUFDVjtJQUVBLE1BQU1OLFdBQVdtQixJQUFBQSxrQkFBVyxFQUFDLENBQUNDO1FBQzVCLElBQUlBLGVBQWUsV0FBV0EsZUFBZSxRQUFRO1lBQ25ESixjQUFjSTtZQUNkRixZQUFZO1lBQ1pYLE9BQU9DLFlBQVksQ0FBQ2EsT0FBTyxDQUFDakIsaUJBQWlCZ0I7WUFDN0NSLFNBQVNDLGVBQWUsQ0FBQ0MsWUFBWSxDQUFDLGNBQWNNO1FBQ3RELE9BQU8sSUFBSUEsZUFBZSxRQUFRO1lBQ2hDLE1BQU1FLDJCQUEyQmYsT0FBT0MsWUFBWSxDQUFDQyxPQUFPLENBQUNMO1lBQzdELElBQUlrQiwwQkFBMEJmLE9BQU9DLFlBQVksQ0FBQ2UsVUFBVSxDQUFDbkI7WUFDN0QsTUFBTW9CLGNBQ0pqQixPQUFPRyxVQUFVLElBQUlILE9BQU9HLFVBQVUsQ0FBQyxnQ0FBZ0NDLE9BQU8sR0FDMUUsU0FDQTtZQUNOQyxTQUFTQyxlQUFlLENBQUNDLFlBQVksQ0FBQyxjQUFjVTtZQUNwRE4sWUFBWTtZQUNaRixjQUFjUTtRQUNoQjtJQUNGLEdBQUcsRUFBRTtJQUVMLHFCQUFPLDZCQUFDdEIsUUFBUXVCLFFBQVE7UUFBQ0MsT0FBTztZQUFFM0I7WUFBVUM7WUFBVUM7UUFBTTtPQUFJYztBQUNsRTtBQUVPLE1BQU1sQixXQUFXLElBQW9COEIsSUFBQUEsaUJBQVUsRUFBQ3pCO01BRXZELFdBQWVBIn0=