Compare commits

...

3 Commits

Author SHA1 Message Date
Yeicor
5308ececae Automatically update version to 0.10.10 2025-08-05 20:55:32 +00:00
Yeicor
64e2622954 Fix uploading multiple models when sharing links 2025-08-05 22:51:58 +02:00
Yeicor
2e8b8bd65f Fix uploading multiple models when sharing links 2025-08-05 22:49:11 +02:00
3 changed files with 16 additions and 6 deletions

View File

@@ -165,13 +165,21 @@ function resetWorker(loadSnapshot: Uint8Array | undefined = undefined) {
setupPyodide(false, loadSnapshot); // Reinitialize Pyodide
}
function shareLinkCommon(added: Record<string, string>, forgotten: Array<string>) {
function shareLinkCommon(added: Record<string, Array<string> | string>, forgotten: Array<string>) {
const baseUrl = window.location
const searchParams = new URLSearchParams(baseUrl.search);
for (const k of forgotten) searchParams.delete(k);
const hashParams = new URLSearchParams(baseUrl.hash.slice(1)); // Keep all previous URL parameters
for (const k of forgotten) hashParams.delete(k);
for (const k in added) hashParams.append(k, added[k]); // Prefer hash to GET
for (const k in added) {
if (Array.isArray(added[k])) {
for (const v of added[k]) {
hashParams.append(k, v); // Prefer hash to GET
}
} else if (typeof added[k] === 'string') {
hashParams.set(k, added[k]); // Prefer hash to GET
}
}
const shareUrl = `${baseUrl.origin}${baseUrl.pathname}?${searchParams}#${hashParams}`;
output(`Share link ready: ${shareUrl}\n`)
if (navigator.clipboard?.writeText === undefined) {
@@ -195,14 +203,16 @@ async function uploadAndShareLink() {
// Upload code.py
const codeBlob = new Blob([model.value.code], {type: 'text/x-python'});
const newParams: Record<string, string> = {
const newParams: Record<string, string | Array<string>> = {
'pg_code': await uploadFile('code.py', new Uint8Array(await codeBlob.arrayBuffer()))
};
// Upload all models
newParams['preload'] = []
for (const name in builtModelsGlb) {
const glb: any = builtModelsGlb[name];
newParams['preload'] = await uploadFile(name + '.glb', glb);
const url = await uploadFile(name + '.glb', glb)
newParams['preload'].push(url); // Add to preload list
}
// Build share URL

View File

@@ -1,6 +1,6 @@
{
"name": "yet-another-cad-viewer",
"version": "0.10.9",
"version": "0.10.10",
"description": "",
"license": "MIT",
"private": true,

View File

@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
[tool.poetry]
name = "yacv-server"
version = "0.10.9"
version = "0.10.10"
description = "Yet Another CAD Viewer (server)"
authors = ["Yeicor <4929005+Yeicor@users.noreply.github.com>"]
license = "MIT"