Skip to content

Commit e51e3be

Browse files
committed
refactor: add necessary deps to panels-viewer; fix broken JS; refactoring panel animation to shift to using CSS vars + disable transitions temporarily when animating
1 parent f7b4080 commit e51e3be

File tree

1 file changed

+28
-11
lines changed

1 file changed

+28
-11
lines changed

packages/uikit-workshop/src/js/panels-viewer.js renamed to packages/uikit-workshop/src/scripts/components/panels-viewer.js

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,16 @@
88
* @requires url-handler.js
99
*/
1010

11-
var panelsViewer = {
11+
import { Panels } from '@pattern-lab/ui-panels';
12+
import { panelsUtil } from '@pattern-lab/ui-panels-util';
13+
import { urlHandler } from '@pattern-lab/utils/url-handler';
14+
import { Dispatcher } from '@pattern-lab/utils/eventemitter';
15+
import Clipboard from 'clipboard';
16+
import $ from 'jquery';
17+
import Hogan from 'hogan.js';
18+
import prism from 'prismjs';
19+
20+
export const panelsViewer = {
1221
// set up some defaults
1322
targetOrigin:
1423
window.location.protocol === 'file:'
@@ -26,7 +35,7 @@ var panelsViewer = {
2635
checkPanels: function(panels, patternData, iframePassback, switchText) {
2736
// count how many panels have rendered content
2837
var panelContentCount = 0;
29-
for (var i = 0; i < panels.length; ++i) {
38+
for (let i = 0; i < panels.length; ++i) {
3039
if (panels[i].content !== undefined) {
3140
panelContentCount++;
3241
}
@@ -84,7 +93,7 @@ var panelsViewer = {
8493
var e = new XMLHttpRequest();
8594
e.onload = (function(i, panels, patternData, iframeRequest) {
8695
return function() {
87-
prismedContent = Prism.highlight(
96+
const prismedContent = Prism.highlight(
8897
this.responseText,
8998
Prism.languages['html']
9099
);
@@ -156,7 +165,7 @@ var panelsViewer = {
156165
patternData.annotations = [];
157166
delete patternData['patternMarkup'];
158167

159-
for (i = 0; i < comments.comments.length; ++i) {
168+
for (let i = 0; i < comments.comments.length; ++i) {
160169
item = comments.comments[i];
161170
els = markup.querySelectorAll(item.el);
162171

@@ -185,7 +194,7 @@ var panelsViewer = {
185194

186195
// add hasComma property to lineage
187196
if (patternData.lineage.length > 0) {
188-
for (i = 0; i < patternData.lineage.length; ++i) {
197+
for (let i = 0; i < patternData.lineage.length; ++i) {
189198
if (i < patternData.lineage.length - 1) {
190199
patternData.lineage[i].hasComma = true;
191200
}
@@ -194,7 +203,7 @@ var panelsViewer = {
194203

195204
// add hasComma property to lineageR
196205
if (patternData.lineageR.length > 0) {
197-
for (i = 0; i < patternData.lineageR.length; ++i) {
206+
for (let i = 0; i < patternData.lineageR.length; ++i) {
198207
if (i < patternData.lineageR.length - 1) {
199208
patternData.lineageR[i].hasComma = true;
200209
}
@@ -249,12 +258,12 @@ var panelsViewer = {
249258
);
250259

251260
// add onclick events to the tabs in the rendered content
252-
for (i = 0; i < panels.length; ++i) {
253-
panel = panels[i];
261+
for (let i = 0; i < panels.length; ++i) {
262+
const panel = panels[i];
254263

255264
// default IDs
256-
panelTab = '#pl-' + patternPartial + '-' + panel.id + '-tab';
257-
panelBlock = '#pl-' + patternPartial + '-' + panel.id + '-panel';
265+
const panelTab = '#pl-' + patternPartial + '-' + panel.id + '-tab';
266+
const panelBlock = '#pl-' + patternPartial + '-' + panel.id + '-panel';
258267

259268
// show default options
260269
if (templateRendered.querySelector(panelTab) !== null && panel.default) {
@@ -309,21 +318,29 @@ $('.pl-js-modal-resizer').mousedown(function(event) {
309318
$('.pl-js-modal-cover').mousemove(function(event) {
310319
/* 3 */
311320
var panelHeight = window.innerHeight - event.clientY + 32; /* 4 */
321+
$('.pl-js-modal').css('transition', 'none');
322+
$('.pl-js-vp-iframe-container').css('transition', 'none');
312323
$('.pl-js-modal').css('height', panelHeight + 'px'); /* 4 */
324+
$('html').css(
325+
'--pl-viewport-height',
326+
window.innerHeight - panelHeight - 32 + 'px'
327+
); /* 4 */
313328
});
314329
});
315330

316331
$('body').mouseup(function() {
317332
/* 5 */
318333
$('.pl-js-modal').unbind('mousemove'); /* 5 */
319334
$('.pl-js-modal-cover').css('display', 'none'); /* 5 */
335+
$('.pl-js-modal').css('transition', '');
336+
$('.pl-js-vp-iframe-container').css('transition', '');
320337
});
321338

322339
// Copy to clipboard functionality
323340
var clipboard = new Clipboard('.pl-js-code-copy-btn');
324341
clipboard.on('success', function(e) {
325342
var copyButton = document.querySelectorAll('.pl-js-code-copy-btn');
326-
for (i = 0; i < copyButton.length; i++) {
343+
for (let i = 0; i < copyButton.length; i++) {
327344
copyButton[i].innerText = 'Copy';
328345
}
329346
e.trigger.textContent = 'Copied';

0 commit comments

Comments
 (0)