38 changed files with 1556 additions and 8084 deletions
@ -1 +1 @@ |
|||
window.initBlock=function(e="",n="",o){document.querySelectorAll(n).forEach((e=>o(e)))},function(){let e;function n(n){const o=document.querySelector("body > main").scrollHeight;if(e===o)return;e=o,window.parent.postMessage("resize:"+JSON.stringify({height:e}),"*")}n(),new ResizeObserver(n).observe(document.body)}(); |
|||
let e;window.initBlock=function(e="",n="",r){t=function(){document.querySelectorAll(n).forEach((e=>r(e)))},t()};let t,n={};function r(r={}){r.template&&(e=r.template),r.data&&(n=r.data),e&&function(e,n,r){const a=Handlebars.compile(e);let o;Handlebars.registerHelper("esc_attr",(function(e){return e})),Handlebars.registerHelper("esc_url",(function(e){return e})),Handlebars.registerHelper("esc_html",(function(e){return e})),Handlebars.registerHelper("base_url",(function(){return"/"}));try{o=a(n)}catch(e){o=`<div style="max-width: 1280px; margin: 1rem auto;">\n <h1 style="all: unset; font-size: 1.5rem; font-weight: bold; display: block;">Syntax Error:</h1>\n <pre style="all: unset; padding: 10px 15px; background-color: #ffe6e6; border: 1px solid red; border-radius: 0.25rem; overflow: auto; display: block; white-space: pre;">${e.toString()}</pre>\n </div>`}r.innerHTML=o,t&&t()}(e,n||{},document.getElementById("hbs-container"))}!function(){function e(){const e=new URLSearchParams(window.location.search),t={};for(const[n,r]of e)t[n]=r;return t}!function(){const t=new URLSearchParams({name:e().data||"default"});fetch(`/data?${t}`).then((e=>e.json())).then((e=>{n=e.data,r({data:n})}))}(),window.addEventListener("message",(function(e){const t=e.data,a="dataUpdate:";if("string"==typeof t&&t.startsWith(a))try{n=JSON.parse(t.substring(a.length)),r({data:n})}catch(e){console.log("Error parsing incoming data.",e)}}))}(),function(){const e=window.io.connect();e.on("error",(function(e){console.log(e)})),e.on("templateUpdate",(function(e){r({template:e.template})}))}(); |
|||
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 1.4 KiB |
@ -1,21 +0,0 @@ |
|||
export function setupFrameResizeListener() { |
|||
const previewFrame = getPreviewFrame(); |
|||
|
|||
window.addEventListener('message', function (e) { |
|||
const RESIZE_CODE = 'resize:'; |
|||
if (typeof e.data !== 'string' || !e.data.startsWith(RESIZE_CODE)) { |
|||
return; |
|||
} |
|||
|
|||
const data = JSON.parse(e.data.substring(RESIZE_CODE.length)) |
|||
let height = Number.parseInt(data.height) |
|||
if (height > 20000) { |
|||
height = 20000; // Limit max height.
|
|||
} |
|||
previewFrame.style.height = height + 'px' |
|||
}); |
|||
} |
|||
|
|||
export function getPreviewFrame() { |
|||
return document.getElementById('preview_frame'); |
|||
} |
|||
@ -0,0 +1,100 @@ |
|||
'use strict'; |
|||
|
|||
import React, {useState} from "react"; |
|||
import * as ReactDOM from "react-dom/client"; |
|||
|
|||
function init() { |
|||
const wrapper = document.querySelector('#screen'); |
|||
|
|||
const root = ReactDOM.createRoot(wrapper); |
|||
const html = (<SyncScreen/>); |
|||
|
|||
root.render(html); |
|||
} |
|||
|
|||
function SyncScreen() { |
|||
const [loading, setLoading] = useState(null); |
|||
const [error, setError] = useState(null); |
|||
|
|||
return <> |
|||
|
|||
<section className="container py-5"> |
|||
<h1 style={{marginBottom: '2rem'}}>Oops... Block not in sync.</h1> |
|||
{error && <p className="alert alert-danger">{error}</p>} |
|||
|
|||
{loading ? |
|||
<> |
|||
{loading === 'syncing' && |
|||
<p>Version upgrade in progress...</p> |
|||
} |
|||
<p>Please wait...</p> |
|||
</> |
|||
: |
|||
<> |
|||
<p>Your version of the block is not in sync with the cloud (not latest version).<br/> |
|||
Would you like to update it?</p> |
|||
<div className="options"> |
|||
<button className="btn btn-primary" style={{marginRight: '0.5rem'}} onClick={runSyncLogic}>Yes, Update to |
|||
Latest |
|||
</button> |
|||
<button className="btn btn-secondary" onClick={ignoreVersionSync}>Ignore</button> |
|||
</div> |
|||
</> |
|||
} |
|||
</section> |
|||
|
|||
</> |
|||
|
|||
async function ignoreVersionSync() { |
|||
setLoading(true); |
|||
|
|||
let data = {}; |
|||
try { |
|||
const response = await fetch('/sync', { |
|||
method: 'POST', |
|||
body: JSON.stringify({ignore: true}), |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
data = await response.json(); |
|||
} catch (err) { |
|||
setError('Error: ' + err.message); |
|||
setLoading(false); |
|||
return; |
|||
} |
|||
|
|||
if (data.status !== 200) { |
|||
setError(data.message); |
|||
setLoading(false); |
|||
return; |
|||
} |
|||
|
|||
setTimeout(() => window.location.reload(), 1000); |
|||
} |
|||
|
|||
async function runSyncLogic() { |
|||
setLoading('syncing'); |
|||
|
|||
let data = {}; |
|||
try { |
|||
const response = await fetch('/sync', {method: 'POST'}); |
|||
data = await response.json(); |
|||
} catch (err) { |
|||
setError('Error: ' + err.message); |
|||
setLoading(false); |
|||
return; |
|||
} |
|||
|
|||
if (data.status !== 200) { |
|||
setError(data.message); |
|||
setLoading(false); |
|||
return; |
|||
} |
|||
|
|||
setTimeout(() => window.location.reload(), 1000); |
|||
} |
|||
|
|||
} |
|||
|
|||
init(); |
|||
|
After Width: | Height: | Size: 1.4 KiB |
@ -1,9 +0,0 @@ |
|||
.swiper { |
|||
&-slide { |
|||
width: initial; |
|||
} |
|||
|
|||
&-wrapper { |
|||
height: initial; |
|||
} |
|||
} |
|||
@ -1 +1 @@ |
|||
{"version":3,"sourceRoot":"","sources":["page--main.scss","_buttons.scss","_overlay.scss","_page--preview.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;EACE;EACA;EAEA;;;ACTF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AC5BJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AFIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAHF;IAII;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EADF;IAEI;;;AAKN;EAEE;EACA;EACA;EACA;;AAGF;EACE;;;AGlFJ;EACE;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;EACA;EAEA;EACA;EAEA;;AAEA;EACE;EAEA;EACA;;;AH6DJ;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAEE","file":"page--main.css"} |
|||
{"version":3,"sourceRoot":"","sources":["page--main.scss","_buttons.scss","_overlay.scss","_page--preview.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;EACE;EACA;EAEA;;;ACTF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;;AC5BJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AFIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAEA;EAHF;IAII;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAKF;EADF;IAEI;;;AAKN;EAEE;EACA;EACA;EACA;;AAGF;EACE;;;AGlFJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;EACA;EAGA;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACE;EAEA;EACA;;;AHiEJ;EACE;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAEE;;;AAGF;EAEE;EACA","file":"page--main.css"} |
|||
@ -1 +1 @@ |
|||
{"version":3,"sourceRoot":"","sources":["page--view.scss","_page--view-swiper.scss"],"names":[],"mappings":"AAAA;EACE;;;AAGF;EACE;EACA;EACA;EACA;;ACPA;EACE;;AAGF;EACE;;;ADSJ;EACE;;AAEA;EAGE;;;AAIJ;EACE;EACA;EACA;EACA","file":"page--view.css"} |
|||
{"version":3,"sourceRoot":"","sources":["page--view.scss"],"names":[],"mappings":"AAAA;EACE;;;AAIF;EACE;;;AAGF;EACE;EACA;EACA;EACA","file":"page--view.css"} |
|||
@ -0,0 +1,18 @@ |
|||
<html lang="en"> |
|||
|
|||
<head> |
|||
<meta charset="UTF-8"> |
|||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|||
<title>Block Development Tool</title> |
|||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-4bw+/aepP/YC94hEpVNVgiZdgIC5+VKNBQNGCHeKRQN+PtmoHDEXuppvnDJzQIu9" crossorigin="anonymous"> |
|||
</head> |
|||
|
|||
<body> |
|||
|
|||
<div id="screen">Loading...</div> |
|||
|
|||
<script src="/socket.io/socket.io.js"></script> |
|||
<script src="/scripts/dist/sync.min.js"></script> |
|||
|
|||
</body> |
|||
</html> |
|||
File diff suppressed because it is too large
Loading…
Reference in new issue