From 90489cf9eb66675de26c61685f25fe19126ec11c Mon Sep 17 00:00:00 2001 From: Brian Beck Date: Tue, 15 Oct 2024 20:20:06 -0700 Subject: [PATCH] Fix rename, add audio icon --- docs/404.html | 2 +- docs/404/index.html | 2 +- .../chunks/app/page-835d545c09f56ec6.js | 1 - .../chunks/app/page-868baa656c845161.js | 1 + .../chunks/f7333993-8f32bf8e5c1e3f32.js | 1 + .../_buildManifest.js | 0 .../_ssgManifest.js | 0 docs/index.html | 2 +- docs/index.txt | 4 ++-- src/Forge.tsx | 21 ++++++++++++------- 10 files changed, 20 insertions(+), 14 deletions(-) delete mode 100644 docs/_next/static/chunks/app/page-835d545c09f56ec6.js create mode 100644 docs/_next/static/chunks/app/page-868baa656c845161.js create mode 100644 docs/_next/static/chunks/f7333993-8f32bf8e5c1e3f32.js rename docs/_next/static/{FgY9gJcnpj3lZXg7cOXvf => nynr0G9Bkz2aJYv1Jy5QI}/_buildManifest.js (100%) rename docs/_next/static/{FgY9gJcnpj3lZXg7cOXvf => nynr0G9Bkz2aJYv1Jy5QI}/_ssgManifest.js (100%) diff --git a/docs/404.html b/docs/404.html index 57e2bf5..9fe1e05 100644 --- a/docs/404.html +++ b/docs/404.html @@ -1 +1 @@ -404: This page could not be found.VL2 Forge

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.VL2 Forge

404

This page could not be found.

\ No newline at end of file diff --git a/docs/404/index.html b/docs/404/index.html index 57e2bf5..9fe1e05 100644 --- a/docs/404/index.html +++ b/docs/404/index.html @@ -1 +1 @@ -404: This page could not be found.VL2 Forge

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.VL2 Forge

404

This page could not be found.

\ No newline at end of file diff --git a/docs/_next/static/chunks/app/page-835d545c09f56ec6.js b/docs/_next/static/chunks/app/page-835d545c09f56ec6.js deleted file mode 100644 index 9f5fa29..0000000 --- a/docs/_next/static/chunks/app/page-835d545c09f56ec6.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{9343:function(e,t,i){Promise.resolve().then(i.bind(i,9330))},9330:function(e,t,i){"use strict";i.d(t,{Forge:function(){return b}});var n=i(7437),a=i(2265),s=i(7380),r=i(7635),l=i.n(r),o=i(12),m=i(1124),c=i.n(m),p=i(9089),u=i(2744),d=i(8637),g=i(1273),f=i(6537),y=i.n(f);function h(e){let t=e.split("/"),i="",n="";return(t.length>1?(i=t.slice(0,-1).join("/"),n=t[t.length-1]):(i="",n=t[0]),i)?"".concat(i,"/").concat(n):(/\.(l|m|h)(male|female|bioderm)\.png$/i.test(n)||/^(vehicle|weapon)_.+png$/i.test(n)||/^dcase\d\d\.png$/i.test(n)?i="textures/skins":/\.(ter|spn)$/i.test(n)?i="terrains":/\.mis$/i.test(n)?i="missions":/\.dif$/i.test(n)&&(i="interiors"),i)?"".concat(i,"/").concat(n):n}function _(e){if(e.type){if(/^image\//i.test(e.type))return{mimeType:e.type,genericType:"image"};if(/^audio\//i.test(e.type))return{mimeType:e.type,genericType:"audio"}}if(/\.png$/i.test(e.name))return{mimeType:"image/png",genericType:"image"};if(/\.jpg$/i.test(e.name))return{mimeType:"image/jpeg",genericType:"image"};if(/\.bmp$/i.test(e.name))return{mimeType:"image/bmp",genericType:"image"};if(/\.webp$/i.test(e.name))return{mimeType:"image/webp",genericType:"image"};if(/\.gif$/i.test(e.name))return{mimeType:"image/gif",genericType:"image"};if(/\.tiff$/i.test(e.name))return{mimeType:"image/tiff",genericType:"image"};if(/\.svg$/i.test(e.name))return{mimeType:"image/svg+xml",genericType:"image"};else if(/\.wav$/i.test(e.name))return{mimeType:"audio/wav",genericType:"audio"};else if(/\.mp3$/i.test(e.name))return{mimeType:"audio/mpeg",genericType:"audio"};return e.type?{mimeType:e.type,genericType:null}:null}function w(e){var t;let{file:i,onDelete:a,onRename:s}=e,r=null;return i.dataUri&&(null===(t=i.type)||void 0===t?void 0:t.genericType)==="image"?r=(0,n.jsx)("img",{className:y().PreviewIcon,src:i.dataUri,width:24,alt:""}):/\.cs$/i.test(i.path)?r=(0,n.jsx)(d.HXH,{}):/\.mis$/i.test(i.path)?r=(0,n.jsx)(g.W95,{}):/\.dif$/i.test(i.path)?r=(0,n.jsx)(u.JEK,{}):/\.ter$/i.test(i.path)?r=(0,n.jsx)(u.seb,{}):/\.spn$/i.test(i.path)&&(r=(0,n.jsx)(g.ekl,{})),(0,n.jsxs)("div",{className:y().File,children:[(0,n.jsx)("span",{className:y().IconContainer,children:r})," ",(0,n.jsx)("span",{className:y().Path,onDoubleClick:()=>{let e=window.prompt("Rename file (".concat(i.path,"):"),i.path);(e=e.trim().replace(/\/+/g,"/").replace(/^\//,"").replace(/\/$/,"").trim())!==i.path&&s(i.path,e)},children:i.path}),(0,n.jsx)("button",{className:y().DeleteButton,type:"button","aria-label":"Delete",title:"Delete",onClick:e=>{a(i.path)},children:(0,n.jsx)(p.AMf,{})})]})}async function v(e){let t=await l().loadAsync(e),i=new Map;for(let e in t.files){let s=t.files[e];if(!s.dir){var n,a;let t={path:e=h(e),buffer:await s.async("arraybuffer"),dataUri:null,date:s.date,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,type:_(s)};if((null===(n=t.type)||void 0===n?void 0:n.genericType)==="image"||(null===(a=t.type)||void 0===a?void 0:a.genericType)==="audio"){let e=await s.async("base64");t.dataUri="data:".concat(t.type.mimeType,";base64,").concat(e)}i.set(e,t)}}return i}async function x(e){var t,i;let n;let a=new Map;if(e.path)(n=e.path).startsWith("/")&&(n=n.slice(1));else{if(!e.name)return a;n=e.name}n=h(n);let s=await new Promise((t,i)=>{let n=new FileReader;n.addEventListener("load",e=>{t(e.target.result)}),n.readAsArrayBuffer(e)}),r={path:n,buffer:s,dataUri:null,date:null,unixPermissions:null,dosPermissions:null,type:_(e)};if((null===(t=r.type)||void 0===t?void 0:t.genericType)==="image"||(null===(i=r.type)||void 0===i?void 0:i.genericType)==="audio"){let e=function(e){for(var t,i,n,a,s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=new Uint8Array(e),o=l.byteLength,m=o%3,c=o-m,p=0;p>18]+r[(258048&a)>>12]+r[(4032&a)>>6]+r[63&a];return 1==m?s+=r[t=(252&(a=l[c]))>>2]+r[(3&a)<<4]+"==":2==m&&(s+=r[t=(64512&(a=l[c]<<8|l[c+1]))>>10]+r[(1008&a)>>4]+r[(15&a)<<2]+"="),s}(s);r.dataUri="data:".concat(r.type.mimeType,";base64,").concat(e)}return a.set(n,r),a}async function T(e){return/\.(zip|vl2)$/i.test(e.name)?v(e):x(e)}async function F(e,t){let i=await e.generateAsync({type:"blob",mimeType:"application/octet-stream"});(0,o.saveAs)(i,t)}function b(){let[e,t]=(0,a.useState)(()=>[]),[i,r]=(0,a.useState)(()=>new Map),o=(0,a.useCallback)(async e=>{let i=[],n=new Map;(await Promise.all(e.map(e=>T(e)))).forEach(e=>{e.forEach((e,t)=>{n.has(t)&&i.push({type:"overwrite",path:t}),n.set(t,e)})}),r(e=>new Map([...Array.from(e.entries()),...Array.from(n.entries())])),t(e=>[...e,...i])},[]),{getRootProps:m,getInputProps:p,open:u,isDragActive:d}=(0,s.uI)({noClick:!0,onDrop:o}),g=(0,a.useMemo)(()=>c()(Array.from(i.keys()),[e=>e.toLowerCase()],["asc"]).map(e=>i.get(e)),[i]),f=(0,n.jsx)("button",{type:"button",className:y().AddButton,"aria-label":"Add files",title:"Add files",onClick:u,children:"+"}),h=(0,a.useCallback)(e=>{r(t=>{let i=new Map(t);return i.delete(e),i})},[]),_=(0,a.useCallback)((e,t)=>{r(i=>{let n={...i.get(e),path:t},a=new Map(i);return a.delete(e),a.set(t,n),a})},[]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("section",{className:y().Forge,...m(),children:[(0,n.jsxs)("header",{className:y().Header,children:[(0,n.jsx)("img",{width:210,height:188,src:"/vl2-forge/logo-md.png",alt:"VL2 Forge"}),f]}),(0,n.jsx)("input",{...p()}),(0,n.jsx)("div",{className:y().ListArea,children:g.length?(0,n.jsx)("ul",{className:y().FileList,children:g.map(e=>(0,n.jsx)("li",{children:(0,n.jsx)(w,{file:e,onDelete:h,onRename:_})},e.path))}):(0,n.jsx)("div",{className:y().EmptyMessage,children:"Drop files onto the page or press the add button!"})})]}),(0,n.jsx)("footer",{className:y().Footer,children:(0,n.jsxs)("form",{onSubmit:async e=>{e.preventDefault();let t=e.target.elements.fileName,i=t.value.trim();if(i){if(g.length){let e=function(e){let t=new(l());for(let i of e)t.file(i.path,i.buffer,{date:i.date,dosPermissions:i.dosPermissions,unixPermissions:i.unixPermissions});return t}(g);await F(e,"".concat(i,".vl2"))}else window.alert("Add some files!")}else window.alert("Name thy file."),t.focus()},children:[(0,n.jsx)("div",{className:y().NameInput,children:(0,n.jsx)("input",{name:"fileName",type:"text",placeholder:"name thy file",onChange:e=>{/\.vl2$/i.test(e.target.value)&&(e.target.value=e.target.value.slice(0,-4))}})}),(0,n.jsx)("button",{type:"submit",className:y().DownloadButton,children:"Download"})]})})]})}},6537:function(e){e.exports={Forge:"Forge_Forge__dDZFe",Footer:"Forge_Footer__ghw3O",NameInput:"Forge_NameInput__lpcsg",DownloadButton:"Forge_DownloadButton__CnFTn",ListArea:"Forge_ListArea__OpY_R",FileList:"Forge_FileList__9JOyh",EmptyMessage:"Forge_EmptyMessage__Lrlud",AddButton:"Forge_AddButton__09pXD",Header:"Forge_Header__7t3Qc",File:"Forge_File__Mn05Y",DeleteButton:"Forge_DeleteButton__Csfdg",IconContainer:"Forge_IconContainer__AgM_T",PreviewIcon:"Forge_PreviewIcon__HFERe",Path:"Forge_Path__GZs81"}}},function(e){e.O(0,[359,51,212,240,699,634,971,117,744],function(){return e(e.s=9343)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/docs/_next/static/chunks/app/page-868baa656c845161.js b/docs/_next/static/chunks/app/page-868baa656c845161.js new file mode 100644 index 0000000..3ed61d1 --- /dev/null +++ b/docs/_next/static/chunks/app/page-868baa656c845161.js @@ -0,0 +1 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{9343:function(e,t,i){Promise.resolve().then(i.bind(i,9330))},9330:function(e,t,i){"use strict";i.d(t,{Forge:function(){return j}});var n=i(7437),a=i(2265),s=i(7380),r=i(7635),l=i.n(r),o=i(12),m=i(1124),p=i.n(m),c=i(9089),u=i(2744),d=i(8637),g=i(1273),f=i(7780),y=i(6537),h=i.n(y);function _(e){let t=e.split("/"),i="",n="";return(t.length>1?(i=t.slice(0,-1).join("/"),n=t[t.length-1]):(i="",n=t[0]),i)?"".concat(i,"/").concat(n):(/\.(l|m|h)(male|female|bioderm)\.png$/i.test(n)||/^(vehicle|weapon)_.+png$/i.test(n)||/^dcase\d\d\.png$/i.test(n)?i="textures/skins":/\.(ter|spn)$/i.test(n)?i="terrains":/\.mis$/i.test(n)?i="missions":/\.dif$/i.test(n)&&(i="interiors"),i)?"".concat(i,"/").concat(n):n}function w(e){if(e.type){if(/^image\//i.test(e.type))return{mimeType:e.type,genericType:"image"};if(/^audio\//i.test(e.type))return{mimeType:e.type,genericType:"audio"}}if(/\.png$/i.test(e.name))return{mimeType:"image/png",genericType:"image"};if(/\.jpg$/i.test(e.name))return{mimeType:"image/jpeg",genericType:"image"};if(/\.bmp$/i.test(e.name))return{mimeType:"image/bmp",genericType:"image"};if(/\.webp$/i.test(e.name))return{mimeType:"image/webp",genericType:"image"};if(/\.gif$/i.test(e.name))return{mimeType:"image/gif",genericType:"image"};if(/\.tiff$/i.test(e.name))return{mimeType:"image/tiff",genericType:"image"};if(/\.svg$/i.test(e.name))return{mimeType:"image/svg+xml",genericType:"image"};else if(/\.wav$/i.test(e.name))return{mimeType:"audio/wav",genericType:"audio"};else if(/\.mp3$/i.test(e.name))return{mimeType:"audio/mpeg",genericType:"audio"};return e.type?{mimeType:e.type,genericType:null}:null}function v(e){var t,i;let{file:a,onDelete:s,onRename:r}=e,l=null;return a.dataUri&&(null===(t=a.type)||void 0===t?void 0:t.genericType)==="image"?l=(0,n.jsx)("img",{className:h().PreviewIcon,src:a.dataUri,width:24,alt:""}):(null===(i=a.type)||void 0===i?void 0:i.genericType)==="audio"?l=(0,n.jsx)(f.Eow,{}):/\.cs$/i.test(a.path)?l=(0,n.jsx)(d.HXH,{}):/\.mis$/i.test(a.path)?l=(0,n.jsx)(g.W95,{}):/\.dif$/i.test(a.path)?l=(0,n.jsx)(u.JEK,{}):/\.ter$/i.test(a.path)?l=(0,n.jsx)(u.seb,{}):/\.spn$/i.test(a.path)&&(l=(0,n.jsx)(g.ekl,{})),(0,n.jsxs)("div",{className:h().File,children:[(0,n.jsx)("span",{className:h().IconContainer,children:l})," ",(0,n.jsx)("span",{className:h().Path,onDoubleClick:()=>{let e=window.prompt("Rename file (".concat(a.path,"):"),a.path);e&&(e=e.trim().replace(/\/+/g,"/").replace(/^\//,"").replace(/\/$/,"").trim())&&e!==a.path&&r(a.path,e)},children:a.path}),(0,n.jsx)("button",{className:h().DeleteButton,type:"button","aria-label":"Delete",title:"Delete",onClick:e=>{s(a.path)},children:(0,n.jsx)(c.AMf,{})})]})}async function x(e){let t=await l().loadAsync(e),i=new Map;for(let e in t.files){let s=t.files[e];if(!s.dir){var n,a;let t={path:e=_(e),buffer:await s.async("arraybuffer"),dataUri:null,date:s.date,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,type:w(s)};if((null===(n=t.type)||void 0===n?void 0:n.genericType)==="image"||(null===(a=t.type)||void 0===a?void 0:a.genericType)==="audio"){let e=await s.async("base64");t.dataUri="data:".concat(t.type.mimeType,";base64,").concat(e)}i.set(e,t)}}return i}async function T(e){var t,i;let n;let a=new Map;if(e.path)(n=e.path).startsWith("/")&&(n=n.slice(1));else{if(!e.name)return a;n=e.name}n=_(n);let s=await new Promise((t,i)=>{let n=new FileReader;n.addEventListener("load",e=>{t(e.target.result)}),n.readAsArrayBuffer(e)}),r={path:n,buffer:s,dataUri:null,date:null,unixPermissions:null,dosPermissions:null,type:w(e)};if((null===(t=r.type)||void 0===t?void 0:t.genericType)==="image"||(null===(i=r.type)||void 0===i?void 0:i.genericType)==="audio"){let e=function(e){for(var t,i,n,a,s="",r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=new Uint8Array(e),o=l.byteLength,m=o%3,p=o-m,c=0;c>18]+r[(258048&a)>>12]+r[(4032&a)>>6]+r[63&a];return 1==m?s+=r[t=(252&(a=l[p]))>>2]+r[(3&a)<<4]+"==":2==m&&(s+=r[t=(64512&(a=l[p]<<8|l[p+1]))>>10]+r[(1008&a)>>4]+r[(15&a)<<2]+"="),s}(s);r.dataUri="data:".concat(r.type.mimeType,";base64,").concat(e)}return a.set(n,r),a}async function F(e){return/\.(zip|vl2)$/i.test(e.name)?x(e):T(e)}async function b(e,t){let i=await e.generateAsync({type:"blob",mimeType:"application/octet-stream"});(0,o.saveAs)(i,t)}function j(){let[e,t]=(0,a.useState)(()=>[]),[i,r]=(0,a.useState)(()=>new Map),o=(0,a.useCallback)(async e=>{let i=[],n=new Map;(await Promise.all(e.map(e=>F(e)))).forEach(e=>{e.forEach((e,t)=>{n.has(t)&&i.push({type:"overwrite",path:t}),n.set(t,e)})}),r(e=>new Map([...Array.from(e.entries()),...Array.from(n.entries())])),t(e=>[...e,...i])},[]),{getRootProps:m,getInputProps:c,open:u,isDragActive:d}=(0,s.uI)({noClick:!0,onDrop:o}),g=(0,a.useMemo)(()=>p()(Array.from(i.keys()),[e=>e.toLowerCase()],["asc"]).map(e=>i.get(e)),[i]),f=(0,n.jsx)("button",{type:"button",className:h().AddButton,"aria-label":"Add files",title:"Add files",onClick:u,children:"+"}),y=(0,a.useCallback)(e=>{r(t=>{let i=new Map(t);return i.delete(e),i})},[]),_=(0,a.useCallback)((e,t)=>{r(i=>{let n={...i.get(e),path:t},a=new Map(i);return a.delete(e),a.set(t,n),a})},[]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("section",{className:h().Forge,...m(),children:[(0,n.jsxs)("header",{className:h().Header,children:[(0,n.jsx)("img",{width:210,height:188,src:"/vl2-forge/logo-md.png",alt:"VL2 Forge"}),f]}),(0,n.jsx)("input",{...c()}),(0,n.jsx)("div",{className:h().ListArea,children:g.length?(0,n.jsx)("ul",{className:h().FileList,children:g.map(e=>(0,n.jsx)("li",{children:(0,n.jsx)(v,{file:e,onDelete:y,onRename:_})},e.path))}):(0,n.jsx)("div",{className:h().EmptyMessage,children:"Drop files onto the page or press the add button!"})})]}),(0,n.jsx)("footer",{className:h().Footer,children:(0,n.jsxs)("form",{onSubmit:async e=>{e.preventDefault();let t=e.target.elements.fileName,i=t.value.trim();if(i){if(g.length){let e=function(e){let t=new(l());for(let i of e)t.file(i.path,i.buffer,{date:i.date,dosPermissions:i.dosPermissions,unixPermissions:i.unixPermissions});return t}(g);await b(e,"".concat(i,".vl2"))}else window.alert("Add some files!")}else window.alert("Name thy file."),t.focus()},children:[(0,n.jsx)("div",{className:h().NameInput,children:(0,n.jsx)("input",{name:"fileName",type:"text",placeholder:"name thy file",onChange:e=>{/\.vl2$/i.test(e.target.value)&&(e.target.value=e.target.value.slice(0,-4))}})}),(0,n.jsx)("button",{type:"submit",className:h().DownloadButton,children:"Download"})]})})]})}},6537:function(e){e.exports={Forge:"Forge_Forge__dDZFe",Footer:"Forge_Footer__ghw3O",NameInput:"Forge_NameInput__lpcsg",DownloadButton:"Forge_DownloadButton__CnFTn",ListArea:"Forge_ListArea__OpY_R",FileList:"Forge_FileList__9JOyh",EmptyMessage:"Forge_EmptyMessage__Lrlud",AddButton:"Forge_AddButton__09pXD",Header:"Forge_Header__7t3Qc",File:"Forge_File__Mn05Y",DeleteButton:"Forge_DeleteButton__Csfdg",IconContainer:"Forge_IconContainer__AgM_T",PreviewIcon:"Forge_PreviewIcon__HFERe",Path:"Forge_Path__GZs81"}}},function(e){e.O(0,[359,51,212,516,240,699,634,971,117,744],function(){return e(e.s=9343)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/docs/_next/static/chunks/f7333993-8f32bf8e5c1e3f32.js b/docs/_next/static/chunks/f7333993-8f32bf8e5c1e3f32.js new file mode 100644 index 0000000..29d080b --- /dev/null +++ b/docs/_next/static/chunks/f7333993-8f32bf8e5c1e3f32.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[516],{7780:function(t,a,r){r.d(a,{Eow:function(){return c}});var n=r(6231);function c(t){return(0,n.w_)({tag:"svg",attr:{viewBox:"0 0 20 20",fill:"currentColor","aria-hidden":"true"},child:[{tag:"path",attr:{d:"M10.5 3.75a.75.75 0 0 0-1.264-.546L5.203 7H2.667a.75.75 0 0 0-.7.48A6.985 6.985 0 0 0 1.5 10c0 .887.165 1.737.468 2.52.111.29.39.48.7.48h2.535l4.033 3.796a.75.75 0 0 0 1.264-.546V3.75ZM16.45 5.05a.75.75 0 0 0-1.06 1.061 5.5 5.5 0 0 1 0 7.778.75.75 0 0 0 1.06 1.06 7 7 0 0 0 0-9.899Z"},child:[]},{tag:"path",attr:{d:"M14.329 7.172a.75.75 0 0 0-1.061 1.06 2.5 2.5 0 0 1 0 3.536.75.75 0 0 0 1.06 1.06 4 4 0 0 0 0-5.656Z"},child:[]}]})(t)}}}]); \ No newline at end of file diff --git a/docs/_next/static/FgY9gJcnpj3lZXg7cOXvf/_buildManifest.js b/docs/_next/static/nynr0G9Bkz2aJYv1Jy5QI/_buildManifest.js similarity index 100% rename from docs/_next/static/FgY9gJcnpj3lZXg7cOXvf/_buildManifest.js rename to docs/_next/static/nynr0G9Bkz2aJYv1Jy5QI/_buildManifest.js diff --git a/docs/_next/static/FgY9gJcnpj3lZXg7cOXvf/_ssgManifest.js b/docs/_next/static/nynr0G9Bkz2aJYv1Jy5QI/_ssgManifest.js similarity index 100% rename from docs/_next/static/FgY9gJcnpj3lZXg7cOXvf/_ssgManifest.js rename to docs/_next/static/nynr0G9Bkz2aJYv1Jy5QI/_ssgManifest.js diff --git a/docs/index.html b/docs/index.html index 75d119e..a2f09d6 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1 +1 @@ -VL2 Forge
\ No newline at end of file +VL2 Forge
\ No newline at end of file diff --git a/docs/index.txt b/docs/index.txt index 9460b13..b7afdcd 100644 --- a/docs/index.txt +++ b/docs/index.txt @@ -1,6 +1,6 @@ -2:I[9330,["51","static/chunks/795d4814-53044e1cf9e42373.js","212","static/chunks/59650de3-d12eb82ab0e85613.js","240","static/chunks/53c13509-17317f399c482fd7.js","699","static/chunks/8e1d74a4-8e519121d6db0557.js","634","static/chunks/634-d90cc75f8d4e4c06.js","931","static/chunks/app/page-835d545c09f56ec6.js"],"Forge"] +2:I[9330,["51","static/chunks/795d4814-53044e1cf9e42373.js","212","static/chunks/59650de3-d12eb82ab0e85613.js","516","static/chunks/f7333993-8f32bf8e5c1e3f32.js","240","static/chunks/53c13509-17317f399c482fd7.js","699","static/chunks/8e1d74a4-8e519121d6db0557.js","634","static/chunks/634-d90cc75f8d4e4c06.js","931","static/chunks/app/page-868baa656c845161.js"],"Forge"] 3:I[4707,[],""] 4:I[6423,[],""] -0:["FgY9gJcnpj3lZXg7cOXvf",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/vl2-forge/_next/static/css/16a8d2abbd38d527.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/vl2-forge/_next/static/css/c50e9c221475fcb7.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_6dd175","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L5",null]]]] +0:["nynr0G9Bkz2aJYv1Jy5QI",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{}],[["$","link","0",{"rel":"stylesheet","href":"/vl2-forge/_next/static/css/16a8d2abbd38d527.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/vl2-forge/_next/static/css/c50e9c221475fcb7.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_6dd175","children":["$","body",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]}]],null],null],["$L5",null]]]] 5:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"VL2 Forge"}],["$","meta","3",{"name":"description","content":"Create .vl2 files for Tribes 2"}],["$","meta","4",{"name":"next-size-adjust"}]] 1:null diff --git a/src/Forge.tsx b/src/Forge.tsx index f763a72..9566b6a 100644 --- a/src/Forge.tsx +++ b/src/Forge.tsx @@ -8,6 +8,7 @@ import { FaTrashAlt } from "react-icons/fa"; import { MdCastle, MdTerrain } from "react-icons/md"; import { LuScrollText } from "react-icons/lu"; import { FaClipboardList, FaMapPin } from "react-icons/fa6"; +import { HiMiniSpeakerWave } from "react-icons/hi2"; import styles from "./Forge.module.css"; import { base64ArrayBuffer } from "./utils"; @@ -92,6 +93,8 @@ function FilePreview({ file, onDelete, onRename }) { alt="" /> ); + } else if (file.type?.genericType === "audio") { + icon = ; } else if (/\.cs$/i.test(file.path)) { icon = ; } else if (/\.mis$/i.test(file.path)) { @@ -110,14 +113,16 @@ function FilePreview({ file, onDelete, onRename }) { className={styles.Path} onDoubleClick={() => { let newPath = window.prompt(`Rename file (${file.path}):`, file.path); - newPath = newPath - .trim() - .replace(/\/+/g, "/") - .replace(/^\//, "") - .replace(/\/$/, "") - .trim(); - if (newPath !== file.path) { - onRename(file.path, newPath); + if (newPath) { + newPath = newPath + .trim() + .replace(/\/+/g, "/") + .replace(/^\//, "") + .replace(/\/$/, "") + .trim(); + if (newPath && newPath !== file.path) { + onRename(file.path, newPath); + } } }} >