Skip to content

Commit ca6dfab

Browse files
committed
refactor: add standalone pl-viewport UI component to replace original bits of UI logic scattered around the codebase;
1 parent d7bc445 commit ca6dfab

File tree

3 files changed

+78
-35
lines changed

3 files changed

+78
-35
lines changed

packages/uikit-workshop/src/html/partials/iframe-loader.html

Lines changed: 0 additions & 15 deletions
This file was deleted.

packages/uikit-workshop/src/html/partials/iframe.html

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
import { define, props } from 'skatejs';
2+
import { h } from 'preact';
3+
const classNames = require('classnames');
4+
import render from 'preact-render-to-string';
5+
6+
import { store } from '../../store.js'; // connect to redux
7+
import { BaseComponent } from '../base-component.js';
8+
9+
import styles from '../../../sass/pattern-lab--iframe-loader.scss';
10+
11+
@define
12+
class IFrame extends BaseComponent {
13+
static is = 'pl-iframe';
14+
15+
constructor(self) {
16+
self = super(self);
17+
this.useShadow = false;
18+
self.styleguideReady = false;
19+
return self;
20+
}
21+
22+
_stateChanged(state) {}
23+
24+
render() {
25+
const IframeInner = () => {
26+
return (
27+
<div>
28+
<style>{styles[0][1]}</style>
29+
<div className={'pl-c-loader'}>
30+
<div className={'pl-c-loader__content'}>
31+
<div className={'pl-c-loader__message'}>Loading Pattern Lab</div>
32+
<div className={'pl-c-loader__spinner'}>
33+
<svg className={'pl-c-loader-svg'} viewBox={'0 0 268 255'}>
34+
<circle
35+
className={'pl-c-loader-svg__outer-circle'}
36+
cx={'134.2'}
37+
cy={'127.6'}
38+
r={'115.1'}
39+
/>
40+
<circle
41+
className={'pl-c-loader-svg__inner-circle'}
42+
cx={'134.2'}
43+
cy={'127.6'}
44+
r={'66.3'}
45+
/>
46+
<path
47+
className={'pl-c-loader-svg__electron'}
48+
d={
49+
'M253,56.3c0,15.6-12.6,28.2-28.2,28.2s-28.2-12.6-28.2-28.2s12.6-28.2,28.2-28.2C240.3,28.1,253,40.7,253,56.3z'
50+
}
51+
/>
52+
</svg>
53+
</div>
54+
</div>
55+
</div>
56+
</div>
57+
);
58+
};
59+
60+
return (
61+
<div class="pl-c-viewport pl-js-viewport">
62+
<div class="pl-c-viewport__cover pl-js-viewport-cover" />
63+
<div class="pl-c-viewport__iframe-wrapper pl-js-vp-iframe-container">
64+
<iframe
65+
class="pl-c-viewport__iframe pl-js-iframe"
66+
sandbox="allow-same-origin allow-scripts allow-popups allow-forms allow-modals"
67+
srcdoc={render(<IframeInner />)}
68+
/>
69+
<div class="pl-c-viewport__resizer pl-js-resize-container">
70+
<div class="pl-c-viewport__resizer-handle pl-js-resize-handle" />
71+
</div>
72+
</div>
73+
</div>
74+
);
75+
}
76+
}
77+
78+
export { IFrame };

0 commit comments

Comments
 (0)