refactor(frontend): dynamic imports (#43)

* handover layercontrol init variable

* merged

* updated config for lazy loading

* fix dyynamic imports

* commented out https config
This commit is contained in:
Anton Tranelis 2025-06-04 19:57:40 +02:00 committed by GitHub
parent 39acb2b3c7
commit 3acac31b76
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 369 additions and 44 deletions

26
localhost-cert.pem Normal file
View File

@ -0,0 +1,26 @@
-----BEGIN CERTIFICATE-----
MIIEXTCCAsWgAwIBAgIQcCbPt92wSwGqEayIluO/fTANBgkqhkiG9w0BAQsFADB7
MR4wHAYDVQQKExVta2NlcnQgZGV2ZWxvcG1lbnQgQ0ExKDAmBgNVBAsMH2ZyaXR6
QGZyaXR6LVRoaW5rUGFkLVQxNHMtR2VuLTMxLzAtBgNVBAMMJm1rY2VydCBmcml0
ekBmcml0ei1UaGlua1BhZC1UMTRzLUdlbi0zMB4XDTI1MDUzMDE3NTUwMFoXDTI3
MDgzMDE3NTUwMFowUzEnMCUGA1UEChMebWtjZXJ0IGRldmVsb3BtZW50IGNlcnRp
ZmljYXRlMSgwJgYDVQQLDB9mcml0ekBmcml0ei1UaGlua1BhZC1UMTRzLUdlbi0z
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApl8YZzbT2AHZCtsVR7Er
8TNDl6EbpKsppOstbtcF7m3eRNL6C/NrgGusDYEpqimUNFkzietD/WFHjzZFiOwL
UUNlTlFud+xAhjFEpI7VMdckY0vWYNRpX5A3qZM5Mj0GnP8HJOeRvp855XpaIlR9
Nlnx8PQy7Na40MAf6dXUEnEyXHDSEasNaGpsi/csEDvWc4APzVyi22IE5yPoGJqr
gr04zgy6Vk5sorCFIxdJ1AjyNsO8TK3cP5c/AWbeG9rzD6Ue8kTNIx/C6IPVWTjz
UltRwoFYNmqNAfyMC92jsDOyNzIceA83flfij073Bux1nry6ECsCgClS4G3N+6/f
ewIDAQABo4GEMIGBMA4GA1UdDwEB/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcD
ATAfBgNVHSMEGDAWgBRK5epC4SLzleTP68biJNt6oll9xzA5BgNVHREEMjAwggls
b2NhbGhvc3SCCzE5Mi4xNjgueC54hwR/AAABhxAAAAAAAAAAAAAAAAAAAAABMA0G
CSqGSIb3DQEBCwUAA4IBgQCLTcK+MOuA99iF4aOE3iUwsuJmmcr/CLjMi3S+MqmP
LKRakqefruV2x4cpgW52Y31nH7UYUTus8FPj/FJAFF8+A1Cw/mLvamAGfcHRpeX0
CiqmOlDmfqN8x40qeckOn+ymHtjG6szWJ1Erryb2v8KkRmE/dJYCtuUKIvid+yK1
RObg8UBNf98CpzBWnNgGjIKcJOjtde9sl2d0970SJ3udPJ1Vg2iqx/7sSrFFnBi8
s7S086GJDEE7vj+3BGs+Xdvscibf9J5TUf0LzziDj7v/1xbQSdsqyhjp2oFXv44A
JZLehvqnyrQ2LxGeECitLugwWg/VabZC8OGMo15VUO4Vexx/l4SjrqVVcBP4rfs0
rjLUvxNcpyQEX6sFSBIrlA1NhQc9fH9SK1ownjiSoYKyDn/aQ1M57oQJXIm8+kVN
VUrPrqDOopsCj4uOuRhnN7Pr6R4r2JX/N9SlaYvCACIYVdlsO/ENdOamtoLXSZKF
v+MkgeYzDeqx7kJDhrLwhKY=
-----END CERTIFICATE-----

28
localhost-key.pem Normal file
View File

@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCmXxhnNtPYAdkK
2xVHsSvxM0OXoRukqymk6y1u1wXubd5E0voL82uAa6wNgSmqKZQ0WTOJ60P9YUeP
NkWI7AtRQ2VOUW537ECGMUSkjtUx1yRjS9Zg1GlfkDepkzkyPQac/wck55G+nznl
eloiVH02WfHw9DLs1rjQwB/p1dQScTJccNIRqw1oamyL9ywQO9ZzgA/NXKLbYgTn
I+gYmquCvTjODLpWTmyisIUjF0nUCPI2w7xMrdw/lz8BZt4b2vMPpR7yRM0jH8Lo
g9VZOPNSW1HCgVg2ao0B/IwL3aOwM7I3Mhx4Dzd+V+KPTvcG7HWevLoQKwKAKVLg
bc37r997AgMBAAECggEBAJk7+TQHkbLgcNHI256+lmR//P+JifZvF9ooKh5uua3T
T+dAEsIzH46WnU+K6Z8q0LAugIPFR0f283v6Vq04C2x7kLFD22VlGkD+2+RdEgvn
xkIWtYtV2QAFyt7LFOEqyA6N7jyVdO2HpkGwIZiBDRqkWWy+3rC5TFwouLwdEEky
sPExVAYYkuDwYpb82ENz6fxR4rvfI5mMkoyI12q4UxByLd7lC6rHgCP8jpz3lpMB
dx2+eWpRH4cA/SSxn2SnpSyLIWnPaS4FmL7t6Yfd9xnp9Qm6vtiTeR+i6mOP1D9u
yjNhI/CoUBIFlxOnweGwlycR9kEiF0khzV7LKq5N55ECgYEA1eQeDs/hd7QAcmKN
lyH0ZdXXFoUpE81yZHECoQ/EZaWh+qzvRQoMusUMRZHKXewgCjuj3CygatIFX+gS
tkjz04K24p/ilGgGXUAnsc2K0N0lDhd5fTngP49AOvbpwbH1pmy1YIeWML0AvdZO
qAir+mo8WYArOBJNVsfnjYChyZcCgYEAxyAKM4D6G2k7MzlRoZ5rNifk8lYP0TZc
fISRt5g4ckGL/qLHJl0Y5EcFXdElEwO9VTNYkuRNSffttzVtR4MSpVsSOcGW+fcd
nAarlK58EZzg54LCITANEJNVFrj6zhaxKLKLfvhvuhM6hR36Th8xz+JHeSf2zEGP
lXWLxHt1rb0CgYEAshUE5aY0/foTaSke5Bc0Kdl6BFkIE2G5fWEOJFVBWrQmAdUc
PeoZISPQjNfOmpZvMrXnPvi081s7eFd7xONGhvLNHDCscI2PxvIUWphcnHuTT4FB
+H5IdALsImvTwh5N/auC9ATPinLCfExDHuphbdQnvQjWcw/h7n/wDUNs8K8CgYEA
kM4o/PlfaI2nIoIdbgXRe4mZge26BO+eZGLXwQaujdBC6UMgxjJPhrprGaWda219
wzbaw7/IwPDOazwsIyQbbCqFX4D7tP3TB4MGRdJ5oSlPmKxLVm0mIxaxexu8MCDq
Zmko7oXmYg/Xr7R0MVmYFNA+H8pDPJi0vQDFSnZpxpUCgYB2/fXHBjlBrvq41Tve
O46t0vZVcePsmLPNNE9wugT6QRuIlRGbi3PVE0PIjPG+gpfZPDGedLztMnsrm4cj
RMuCOer300/MAw/cBLEhmaX38Y/UK4oQ3y+XlvniEHcFSBhDoBFrvMqxLvYdU06X
ktmcj6c87RE7QEWnSmbpj3Oo3A==
-----END PRIVATE KEY-----

218
package-lock.json generated
View File

@ -18,10 +18,11 @@
"react-dom": "^18.2.0",
"react-rnd": "^10.4.1",
"react-router-dom": "^6.23.0",
"utopia-ui": "^3.0.94"
"utopia-ui": "^3.0.96"
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
"@types/node": "^22.15.28",
"@types/react": "^18.2.79",
"@types/react-dom": "^18.2.25",
"@typescript-eslint/eslint-plugin": "^5.62.0",
@ -2194,6 +2195,39 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz",
"integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==",
"license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/fontawesome-svg-core": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz",
"integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==",
"license": "MIT",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@fortawesome/free-solid-svg-icons": {
"version": "6.7.2",
"resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz",
"integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==",
"license": "(CC-BY-4.0 AND MIT)",
"dependencies": {
"@fortawesome/fontawesome-common-types": "6.7.2"
},
"engines": {
"node": ">=6"
}
},
"node_modules/@heroicons/react": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.2.0.tgz",
@ -2405,6 +2439,58 @@
"node": ">=14.0.0"
}
},
"node_modules/@rollup/plugin-commonjs": {
"version": "28.0.3",
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz",
"integrity": "sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ==",
"license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"commondir": "^1.0.1",
"estree-walker": "^2.0.2",
"fdir": "^6.2.0",
"is-reference": "1.2.1",
"magic-string": "^0.30.3",
"picomatch": "^4.0.2"
},
"engines": {
"node": ">=16.0.0 || 14 >= 14.17"
},
"peerDependencies": {
"rollup": "^2.68.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/fdir": {
"version": "6.4.5",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.5.tgz",
"integrity": "sha512-4BG7puHpVsIYxZUbiUE3RqGloLaSSwzYie5jvasC4LWuBWzZawynvYouhjbQKw2JuIGYdm0DzIxl8iVidKlUEw==",
"license": "MIT",
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/@rollup/plugin-node-resolve": {
"version": "15.3.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.3.1.tgz",
@ -2457,7 +2543,6 @@
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz",
"integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/estree": "^1.0.0",
@ -2480,7 +2565,6 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=12"
@ -3122,6 +3206,15 @@
"@babel/types": "^7.20.7"
}
},
"node_modules/@types/codemirror": {
"version": "5.60.16",
"resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.16.tgz",
"integrity": "sha512-V/yHdamffSS075jit+fDxaOAmdP2liok8NSNJnAZfDJErzOheuygHZEhAJrfmk5TEyM32MhkZjwo/idX791yxw==",
"license": "MIT",
"dependencies": {
"@types/tern": "*"
}
},
"node_modules/@types/debug": {
"version": "4.1.12",
"resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz",
@ -3175,6 +3268,12 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/marked": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/@types/marked/-/marked-4.3.2.tgz",
"integrity": "sha512-a79Yc3TOk6dGdituy8hmTTJXjOkZ7zsFYV10L337ttq/rec8lRMDBpV7fL3uLx6TgbFCa5DU/h8FmIBQPSbU0w==",
"license": "MIT"
},
"node_modules/@types/mdast": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
@ -3190,6 +3289,16 @@
"integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==",
"license": "MIT"
},
"node_modules/@types/node": {
"version": "22.15.28",
"resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.28.tgz",
"integrity": "sha512-I0okKVDmyKR281I0UIFV7EWAWRnR0gkuSKob5wVcByyyhr7Px/slhkQapcYX4u00ekzNWaS1gznKZnuzxwo4pw==",
"devOptional": true,
"license": "MIT",
"dependencies": {
"undici-types": "~6.21.0"
}
},
"node_modules/@types/prop-types": {
"version": "15.7.14",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
@ -3230,6 +3339,15 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/tern": {
"version": "0.23.9",
"resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz",
"integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==",
"license": "MIT",
"dependencies": {
"@types/estree": "*"
}
},
"node_modules/@types/trusted-types": {
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
@ -4328,6 +4446,21 @@
"node": ">=6"
}
},
"node_modules/codemirror": {
"version": "5.65.19",
"resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.19.tgz",
"integrity": "sha512-+aFkvqhaAVr1gferNMuN8vkTSrWIFvzlMV9I2KBLCWS2WpZ2+UAkZjlMZmEuT+gcXTi6RrGQCkWq1/bDtGqhIA==",
"license": "MIT"
},
"node_modules/codemirror-spell-checker": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/codemirror-spell-checker/-/codemirror-spell-checker-1.1.2.tgz",
"integrity": "sha512-2Tl6n0v+GJRsC9K3MLCdLaMOmvWL0uukajNJseorZJsslaxZyZMgENocPU8R0DyoTAiKsyqiemSOZo7kjGV0LQ==",
"license": "MIT",
"dependencies": {
"typo-js": "*"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@ -4387,6 +4520,12 @@
"node": ">=4.0.0"
}
},
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"license": "MIT"
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -4683,6 +4822,19 @@
"node": ">= 0.4"
}
},
"node_modules/easymde": {
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/easymde/-/easymde-2.20.0.tgz",
"integrity": "sha512-V1Z5f92TfR42Na852OWnIZMbM7zotWQYTddNaLYZFVKj7APBbyZ3FYJ27gBw2grMW3R6Qdv9J8n5Ij7XRSIgXQ==",
"license": "MIT",
"dependencies": {
"@types/codemirror": "^5.60.10",
"@types/marked": "^4.0.7",
"codemirror": "^5.65.15",
"codemirror-spell-checker": "1.1.2",
"marked": "^4.1.0"
}
},
"node_modules/ejs": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz",
@ -5674,7 +5826,6 @@
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true,
"license": "MIT"
},
"node_modules/esutils": {
@ -6764,6 +6915,15 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
"license": "MIT",
"dependencies": {
"@types/estree": "*"
}
},
"node_modules/is-regex": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
@ -7479,6 +7639,18 @@
"@jridgewell/sourcemap-codec": "^1.5.0"
}
},
"node_modules/marked": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
"license": "MIT",
"bin": {
"marked": "bin/marked.js"
},
"engines": {
"node": ">= 12"
}
},
"node_modules/math-intrinsics": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@ -8988,6 +9160,20 @@
"react-dom": ">=16.8"
}
},
"node_modules/react-simplemde-editor": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/react-simplemde-editor/-/react-simplemde-editor-5.2.0.tgz",
"integrity": "sha512-GkTg1MlQHVK2Rks++7sjuQr/GVS/xm6y+HchZ4GPBWrhcgLieh4CjK04GTKbsfYorSRYKa0n37rtNSJmOzEDkQ==",
"license": "MIT",
"dependencies": {
"@types/codemirror": "~5.60.5"
},
"peerDependencies": {
"easymde": ">= 2.0.0 < 3.0.0",
"react": ">=16.8.2",
"react-dom": ">=16.8.2"
}
},
"node_modules/react-toastify": {
"version": "9.1.3",
"resolved": "https://registry.npmjs.org/react-toastify/-/react-toastify-9.1.3.tgz",
@ -10254,6 +10440,12 @@
"node": ">=14.17"
}
},
"node_modules/typo-js": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.5.tgz",
"integrity": "sha512-F45vFWdGX8xahIk/sOp79z2NJs8ETMYsmMChm9D5Hlx3+9j7VnCyQyvij5MOCrNY3NNe8noSyokRjQRfq+Bc7A==",
"license": "BSD-3-Clause"
},
"node_modules/unbox-primitive": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
@ -10273,6 +10465,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/undici-types": {
"version": "6.21.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
"integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
"devOptional": true,
"license": "MIT"
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz",
@ -10513,15 +10712,19 @@
}
},
"node_modules/utopia-ui": {
"version": "3.0.94",
"resolved": "https://registry.npmjs.org/utopia-ui/-/utopia-ui-3.0.94.tgz",
"integrity": "sha512-fNwCFZ9RSPz+rr86UjOJYlHEmG8t9JDli3EhTJUsHXzu3mjrISTNH+WY72BYOAvAoOeO+pBQ/Qz22EE6KSK9BA==",
"version": "3.0.96",
"resolved": "https://registry.npmjs.org/utopia-ui/-/utopia-ui-3.0.96.tgz",
"integrity": "sha512-YBEK+RfIC2o4ahfcxnEKxFWmgOwKhTIKARPQnw9BZqg4P5WNODSSH4ksi3H0zXP+TPHX2pAU64V/WPOfqBwV8w==",
"license": "GPL-3.0-only",
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@heroicons/react": "^2.0.17",
"@rollup/plugin-commonjs": "^28.0.3",
"@tanstack/react-query": "^5.17.8",
"axios": "^1.6.5",
"date-fns": "^3.3.1",
"easymde": "^2.20.0",
"leaflet": "^1.9.4",
"leaflet.locatecontrol": "^0.79.0",
"radash": "^12.1.0",
@ -10533,6 +10736,7 @@
"react-markdown": "^9.0.1",
"react-photo-album": "^3.0.2",
"react-router-dom": "^6.16.0",
"react-simplemde-editor": "^5.2.0",
"react-toastify": "^9.1.3",
"remark-breaks": "^4.0.0",
"yet-another-react-lightbox": "^3.21.7"

View File

@ -20,10 +20,11 @@
"react-dom": "^18.2.0",
"react-rnd": "^10.4.1",
"react-router-dom": "^6.23.0",
"utopia-ui": "^3.0.94"
"utopia-ui": "^3.0.96"
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "^4.4.1",
"@types/node": "^22.15.28",
"@types/react": "^18.2.79",
"@types/react-dom": "^18.2.25",
"@typescript-eslint/eslint-plugin": "^5.62.0",

View File

@ -25,21 +25,20 @@ import {
Quests,
RequestPasswordPage,
SetNewPasswordPage,
UserSettings,
OverlayItemsIndexPage,
ProfileView,
ProfileForm,
Permissions,
Tags,
SelectUser,
AttestationForm,
MarketView,
SVG,
LoadingMapOverlay,
} from 'utopia-ui'
import { Route, Routes } from 'react-router-dom'
import './App.css'
import { useEffect, useState } from 'react'
import { lazy, Suspense, useEffect, useState } from 'react'
import { assetsApi } from './api/assetsApi'
import { itemsApi } from './api/itemsApi'
@ -135,6 +134,24 @@ function App() {
const currentUrl = window.location.href
const bottomRoutes = getBottomRoutes(currentUrl)
const ProfileForm = lazy(() =>
import('utopia-ui/Profile').then((mod) => ({
default: mod.ProfileForm,
})),
)
const ProfileView = lazy(() =>
import('utopia-ui/Profile').then((mod) => ({
default: mod.ProfileView,
})),
)
const UserSettings = lazy(() =>
import('utopia-ui/Profile').then((mod) => ({
default: mod.UserSettings,
})),
)
if (map && layers)
return (
<div className='App overflow-x-hidden'>
@ -165,12 +182,44 @@ function App() {
element={<RequestPasswordPage resetUrl={map.url + '/set-new-password/'} />}
/>
<Route path='set-new-password' element={<SetNewPasswordPage />} />
<Route path='item/*' element={<ProfileView attestationApi={attestationApi} />} />
<Route path='edit-item/*' element={<ProfileForm />} />
<Route path='user-settings' element={<UserSettings />} />
<Route
path='item/*'
element={
<Suspense fallback={<LoadingMapOverlay />}>
<ProfileView attestationApi={attestationApi} />
</Suspense>
}
/>
<Route
path='edit-item/*'
element={
<Suspense fallback={<LoadingMapOverlay />}>
<ProfileForm />
</Suspense>
}
/>
<Route
path='user-settings'
element={
<Suspense fallback={<LoadingMapOverlay />}>
<UserSettings />
</Suspense>
}
/>
<Route path='landingpage' element={<Landingpage />} />
<Route path='market' element={<MarketView />} />
<Route path='select-user' element={<SelectUser />} />
{/* <Route
path='onboarding'
element={
<MapOverlayPage
backdrop
className='max-w-[calc(100vw-32px)] md:max-w-md h-[calc(100vh-96px)] md:h-fit'
>
<Onboarding />
</MapOverlayPage>
}
/> */}
<Route
path='attestation-form'
element={<AttestationForm api={attestationApi} />}

View File

@ -4,7 +4,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable react/no-unescaped-entities */
/* eslint-disable @typescript-eslint/no-non-null-assertion */
import { useState } from 'react'
import { useEffect, useState } from 'react'
import { TextView } from 'utopia-ui'
interface ChapterProps {
@ -122,6 +122,13 @@ const close = () => {
}
export const ModalContent = ({ map }: { map: any }) => {
useEffect(() => {
const myModal = document.getElementById('my_modal_3') as HTMLDialogElement
if (map.info_open) {
myModal.showModal()
}
}, [map.info_open])
const [chapter, setChapter] = useState<number>(1)
// const setQuestsOpen = useSetQuestOpen()

View File

@ -1,37 +1,47 @@
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
import fs from 'fs';
import path from 'path';
// __dirname-Ersatz für ESModules
const __dirname = path.dirname(new URL(import.meta.url).pathname);
// https://vitejs.dev/config/
export default defineConfig({
server: {
port: 5174
host: true,
port: 5174,
/**
* https: {
* key: fs.readFileSync(path.resolve(__dirname, 'localhost-key.pem')),
* cert: fs.readFileSync(path.resolve(__dirname, 'localhost-cert.pem')),
* },
*/
},
plugins: [
react(),
tailwindcss(),
]
})
],
build: {
rollupOptions: {
output: {
manualChunks(id) {
if (
id.includes('node_modules/utopia-ui/dist/Profile') &&
/\.(esm|cjs)\.js$/.test(id)
) {
return 'profile-form'
}
{/**
VitePWA({manifest: {
"short_name": "Utopia Game",
"name": "Utopia - A Real Life Manifestation Game",
"icons": [
{
"src": "3markers-globe.svg",
"sizes": "any",
"type": "image/svg+xml"
},
{
"src": "3markers-globe_256.png",
"sizes": "256x256",
"type": "image/png"
},
],
"start_url": "/",
"display": "fullscreen",
"orientation": "natural"
}})
*/}
if (id.includes('node_modules/utopia-ui/')) {
return 'utopia-ui-vendor'
}
if (id.includes('node_modules/')) {
return 'vendor'
}
}
}
}
}
});