123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { domReady } from '../src/utils/domReady';
- import '../tests/stubs';
- import '../../wagtail/admin/static_src/wagtailadmin/scss/core.scss';
- import './preview.scss';
- export const parameters = {
- controls: {
- hideNoControlsWarning: true,
- matchers: {
- color: /(background|color)$/i,
- date: /Date$/,
- },
- },
- };
- const cachedIcons = sessionStorage.getItem('WAGTAIL_ICONS');
- window.WAGTAIL_ICONS = cachedIcons ? JSON.parse(cachedIcons) : [];
- /**
- * Loads Wagtail’s icon sprite into the DOM, similarly to the admin.
- */
- const loadIconSprite = () => {
- const PATTERN_LIBRARY_SPRITE_URL = '/pattern-library/api/v1/sprite';
- window
- .fetch(PATTERN_LIBRARY_SPRITE_URL)
- .then((res) => res.text())
- .then((html) => {
- const sprite = document.createElement('div');
- sprite.innerHTML = html;
- const symbols = Array.from(sprite.querySelectorAll('symbol'));
- const icons = symbols.map((elt) => elt.id.replace('icon-', '')).sort();
- window.WAGTAIL_ICONS = icons;
- sessionStorage.setItem('WAGTAIL_ICONS', JSON.stringify(icons));
- if (document.body) {
- document.body.appendChild(sprite);
- } else {
- window.addEventListener('DOMContentLoaded', () => {
- document.body.appendChild(sprite);
- });
- }
- });
- };
- domReady().then(() => {
- // Add ready class to body to enable CSS transitions
- // Emulates what happens in Wagtail admin when initial content is loaded
- document.body.classList.add('ready');
- });
- loadIconSprite();
|