mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-05-12 05:35:16 -05:00
feature to be able to download plans
This commit is contained in:
parent
6d66216cc3
commit
2baf3e2758
|
|
@ -1,13 +1,13 @@
|
|||
{
|
||||
"files": {
|
||||
"main.js": "/static/js/main.8fcc73fa.chunk.js",
|
||||
"main.js.map": "/static/js/main.8fcc73fa.chunk.js.map",
|
||||
"main.js": "/static/js/main.192b03b6.chunk.js",
|
||||
"main.js.map": "/static/js/main.192b03b6.chunk.js.map",
|
||||
"runtime~main.js": "/static/js/runtime~main.a8a9905a.js",
|
||||
"runtime~main.js.map": "/static/js/runtime~main.a8a9905a.js.map",
|
||||
"static/js/2.59a46b82.chunk.js": "/static/js/2.59a46b82.chunk.js",
|
||||
"static/js/2.59a46b82.chunk.js.map": "/static/js/2.59a46b82.chunk.js.map",
|
||||
"static/js/2.7a85428d.chunk.js": "/static/js/2.7a85428d.chunk.js",
|
||||
"static/js/2.7a85428d.chunk.js.map": "/static/js/2.7a85428d.chunk.js.map",
|
||||
"index.html": "/index.html",
|
||||
"precache-manifest.99763fb56063bd37d0326b32ac23144e.js": "/precache-manifest.99763fb56063bd37d0326b32ac23144e.js",
|
||||
"precache-manifest.7efce9120a84347a6129e5f10f1151eb.js": "/precache-manifest.7efce9120a84347a6129e5f10f1151eb.js",
|
||||
"service-worker.js": "/service-worker.js",
|
||||
"static/media/academy-sz-map.png": "/static/media/academy-sz-map.750d725a.png",
|
||||
"static/media/ancho-v_games.png": "/static/media/ancho-v_games.07d5d0f6.png",
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body style="background-color:#f2f7fd"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.59a46b82.chunk.js"></script><script src="/static/js/main.8fcc73fa.chunk.js"></script></body></html>
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="shortcut icon" href="/favicon.ico"/><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/semantic-ui@2.4.2/dist/semantic.min.css"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><link rel="manifest" href="/manifest.json"/><title>sendou.ink</title></head><body style="background-color:#f2f7fd"><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={1:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])</script><script src="/static/js/2.7a85428d.chunk.js"></script><script src="/static/js/main.192b03b6.chunk.js"></script></body></html>
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
||||
{
|
||||
"revision": "79c292ac74fae648ef8d043a28d98353",
|
||||
"revision": "409f5ff80fea3642cec0e58712881ecf",
|
||||
"url": "/index.html"
|
||||
},
|
||||
{
|
||||
"revision": "78e7d50d7c98735926e0",
|
||||
"url": "/static/js/2.59a46b82.chunk.js"
|
||||
"revision": "ae2c56d4f915d5b1b1ad",
|
||||
"url": "/static/js/2.7a85428d.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "8bec99e5038b32adb431",
|
||||
"url": "/static/js/main.8fcc73fa.chunk.js"
|
||||
"revision": "4c37bd3c5224af791a05",
|
||||
"url": "/static/js/main.192b03b6.chunk.js"
|
||||
},
|
||||
{
|
||||
"revision": "42ac5946195a7306e2a5",
|
||||
|
|
@ -14,7 +14,7 @@
|
|||
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.0/workbox-sw.js");
|
||||
|
||||
importScripts(
|
||||
"/precache-manifest.99763fb56063bd37d0326b32ac23144e.js"
|
||||
"/precache-manifest.7efce9120a84347a6129e5f10f1151eb.js"
|
||||
);
|
||||
|
||||
self.addEventListener('message', (event) => {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
build/static/js/main.192b03b6.chunk.js
Normal file
2
build/static/js/main.192b03b6.chunk.js
Normal file
File diff suppressed because one or more lines are too long
1
build/static/js/main.192b03b6.chunk.js.map
Normal file
1
build/static/js/main.192b03b6.chunk.js.map
Normal file
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
3
react-ui/src/components/Misc/HomePage.js
vendored
3
react-ui/src/components/Misc/HomePage.js
vendored
|
|
@ -10,6 +10,9 @@ const HomePage = ({ setMenuSelection }) => {
|
|||
<div style={{'textAlign': 'center'}}>
|
||||
<Header as='h2'>Welcome to sendou.ink!<Header sub>Competitive Splatoon Hub</Header></Header>
|
||||
</div>
|
||||
<div style={{'paddingTop': '20px'}}>
|
||||
<b><Link to='/plans'>Map planner</Link></b> - Draw on Splatoon 2 maps to show your teammates or anyone else what your plan is. Supports free drawing, shapes and inserting any weapon from the game on the canvas.
|
||||
</div>
|
||||
<div style={{'paddingTop': '20px'}}>
|
||||
<b><Link to='/maps'>Maplists</Link></b> - Generate a maplist to use when scrimming.
|
||||
You can choose the map pool to be used including monthly ranked maps or an upcoming event.
|
||||
|
|
|
|||
14
react-ui/src/components/Tools/MapPlanner.js
vendored
14
react-ui/src/components/Tools/MapPlanner.js
vendored
|
|
@ -115,6 +115,17 @@ const MapPlanner = ({ setMenuSelection }) => {
|
|||
}
|
||||
}
|
||||
|
||||
const download = () => {
|
||||
const dataUrl = sketch.toDataURL()
|
||||
let a = document.createElement("a")
|
||||
document.body.appendChild(a)
|
||||
a.style = "display: none"
|
||||
a.href = dataUrl
|
||||
a.download = `${bg.replace('/static/media/', '').split('-')[0]} plans.png`
|
||||
a.click()
|
||||
window.URL.revokeObjectURL(dataUrl)
|
||||
}
|
||||
|
||||
const onBgChange = (value) => {
|
||||
setBg(value)
|
||||
sketch.clear()
|
||||
|
|
@ -126,7 +137,7 @@ const MapPlanner = ({ setMenuSelection }) => {
|
|||
if (!sketch) return
|
||||
setMenuSelection('plans')
|
||||
document.title = 'Planner - sendou.ink'
|
||||
sketch.setBackgroundFromDataUrl(academy)
|
||||
sketch.setBackgroundFromDataUrl(reef)
|
||||
}, [sketch, setMenuSelection])
|
||||
|
||||
return (
|
||||
|
|
@ -159,6 +170,7 @@ const MapPlanner = ({ setMenuSelection }) => {
|
|||
<Button icon disabled={!canUndo} onClick={() => undo()}><Icon name='undo' />Undo</Button>
|
||||
<Button icon disabled={!canRedo} onClick={() => redo()}><Icon name='redo' />Redo</Button>
|
||||
<Button icon disabled={tool !== Tools.Select} onClick={() => removeSelected()}><Icon name='trash' />Delete selected</Button>
|
||||
<Button icon onClick={() => download()}><Icon name='download' />Download</Button>
|
||||
</div>
|
||||
<div style={{"paddingTop": "10px"}}>
|
||||
<Grid columns={3}>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user