@ucam/design-system
Version:
University of Cambridge Design System
21 lines (18 loc) • 2.52 kB
JavaScript
import React, { useContext } from 'react';
import { light } from '../themes/themes.js';
/** @internal */
const ThemeUpdateContext = React.createContext({
requestedThemeName: undefined,
renderedThemeName: 'light',
theme: light,
setTheme: () => {
throw Error('Must be used inside a ThemeProvider');
}
});
/**
* A hook to get the current theme.
* Must be used inside a `<ThemeProvider />`
*/
const useTheme = () => useContext(ThemeUpdateContext);
export { ThemeUpdateContext, useTheme };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlVGhlbWUuanMiLCJzb3VyY2VzIjpbIi9AdWNhbS9kZXNpZ24tc3lzdGVtL3NyYy90aGVtZS91c2VUaGVtZS91c2VUaGVtZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGxpZ2h0LCBUaGVtZSB9IGZyb20gJy4uL3RoZW1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGhlbWVVcGRhdGUge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHRoZW1lIHRoYXQgdGhlIHVzZXIgc2VsZWN0ZWRcbiAgICovXG4gIHJlcXVlc3RlZFRoZW1lTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnRseSByZW5kZXJlZCB0aGVtZS4gVGhpcyBtYXkgbm90IG1hdGNoIHRoZSB1c2VyIHNlbGVjdGlvbi5cbiAgICogdGhleSBtaWdodCBoYXZlIHNlbGVjdGVkIFwiQnJvd3NlciBQcmVmZXJlbmNlXCIgd2hpY2ggd291bGQgZWl0aGVyIHJlc3VsdCBpbiBcIkxpZ2h0XCIgb3IgXCJEYXJrXCJcbiAgICovXG4gIHJlbmRlcmVkVGhlbWVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCB0aGVtZVxuICAgKi9cbiAgdGhlbWU6IFRoZW1lO1xuICAvKipcbiAgICogU2V0IHRoZSBjdXJyZW50IHRoZW1lIChieSBuYW1lKVxuICAgKi9cbiAgc2V0VGhlbWU6ICh0aGVtZU5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCkgPT4gdm9pZDtcbn1cblxuLyoqIEBpbnRlcm5hbCAqL1xuZXhwb3J0IGNvbnN0IFRoZW1lVXBkYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQ8VGhlbWVVcGRhdGU+KHtcbiAgcmVxdWVzdGVkVGhlbWVOYW1lOiB1bmRlZmluZWQsXG4gIHJlbmRlcmVkVGhlbWVOYW1lOiAnbGlnaHQnLFxuICB0aGVtZTogbGlnaHQsXG4gIHNldFRoZW1lOiAoKSA9PiB7XG4gICAgdGhyb3cgRXJyb3IoJ011c3QgYmUgdXNlZCBpbnNpZGUgYSBUaGVtZVByb3ZpZGVyJyk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIEEgaG9vayB0byBnZXQgdGhlIGN1cnJlbnQgdGhlbWUuXG4gKiBNdXN0IGJlIHVzZWQgaW5zaWRlIGEgYDxUaGVtZVByb3ZpZGVyIC8+YFxuICovXG5leHBvcnQgY29uc3QgdXNlVGhlbWU6ICgpID0+IFRoZW1lVXBkYXRlID0gKCkgPT4gdXNlQ29udGV4dChUaGVtZVVwZGF0ZUNvbnRleHQpO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXVCQTtNQUNhLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxhQUFhLENBQWM7SUFDakUsa0JBQWtCLEVBQUUsU0FBUztJQUM3QixpQkFBaUIsRUFBRSxPQUFPO0lBQzFCLEtBQUssRUFBRSxLQUFLO0lBQ1osUUFBUSxFQUFFO1FBQ1IsTUFBTSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztLQUNwRDtDQUNGLEVBQUU7QUFFSDs7OztNQUlhLFFBQVEsR0FBc0IsTUFBTSxVQUFVLENBQUMsa0JBQWtCOzs7OyJ9