From fe3e1d7e79b0f12c32b8ff99f71eb06f76b16847 Mon Sep 17 00:00:00 2001
From: HF
Date: Sun, 5 Jul 2020 11:22:40 +0200
Subject: [PATCH] Add possibility to have hidden canvses, mirror pz and pc
---
src/actions/index.js | 6 +++
src/canvases.json | 69 ++++++++++++++++++++++++++++
src/components/CanvasSelectModal.jsx | 13 ++++--
src/components/Converter.jsx | 32 ++++++++-----
src/controls/keypress.js | 5 ++
src/core/tilesBackup.js | 8 ++--
src/reducers/canvas.js | 9 ++++
7 files changed, 122 insertions(+), 20 deletions(-)
diff --git a/src/actions/index.js b/src/actions/index.js
index 8a62d893..0a7c2d9b 100644
--- a/src/actions/index.js
+++ b/src/actions/index.js
@@ -35,6 +35,12 @@ export function toggleHistoricalView(): Action {
};
}
+export function toggleHiddenCanvases(): Action {
+ return {
+ type: 'TOGGLE_HIDDEN_CANVASES',
+ };
+}
+
export function toggleGrid(): Action {
return {
type: 'TOGGLE_GRID',
diff --git a/src/canvases.json b/src/canvases.json
index 35c7b859..f9d4c0fb 100644
--- a/src/canvases.json
+++ b/src/canvases.json
@@ -37,6 +37,7 @@
[ 130, 0, 128 ]
],
"size": 65536,
+ "hid": false,
"cli": 2,
"bcd": 4000,
"pcd" : 7000,
@@ -84,6 +85,7 @@
[ 174, 215, 185 ]
],
"size" : 4096,
+ "hid": false,
"cli": 2,
"bcd": 15000,
"pcd": 15000,
@@ -161,6 +163,7 @@
[ 174, 215, 185 ]
],
"size": 1024,
+ "hid": false,
"v": true,
"cli": 2,
"bcd": 2000,
@@ -199,6 +202,7 @@
[ 230, 206, 172 ]
],
"size" : 256,
+ "hid": false,
"cli": 2,
"bcd": 500,
"pcd": 500,
@@ -230,6 +234,7 @@
[ 250, 246, 0 ]
],
"size": 1024,
+ "hid": false,
"cli": 0,
"bcd": 5000,
"pcd": 5000,
@@ -238,5 +243,69 @@
"req": -1,
"sd": "2020-05-11",
"desc": "A meme"
+ },
+ "5": {
+ "ident": "y",
+ "title": "PixelZone",
+ "colors": [
+ [ 38, 38, 38 ],
+ [ 0, 0, 0 ],
+ [ 128, 128, 128 ],
+ [ 255, 255, 255 ],
+ [ 153, 98, 61 ],
+ [ 255, 163, 200 ],
+ [ 207, 115, 230 ],
+ [ 128, 0, 128 ],
+ [ 229, 0, 0 ],
+ [ 229, 137, 0 ],
+ [ 229, 229, 0 ],
+ [ 150, 230, 70 ],
+ [ 0, 190, 0 ],
+ [ 0, 230, 230 ],
+ [ 0, 136, 204 ],
+ [ 0, 0, 230 ]
+ ],
+ "size": 16384,
+ "hid": true,
+ "cli": 0,
+ "bcd": 4000,
+ "pcd": 4000,
+ "cds": 4000,
+ "ranked": false,
+ "req": -1,
+ "sd": "2020-07-05",
+ "desc": "Mirror of PixelZone"
+ },
+ "6": {
+ "ident": "z",
+ "title": "PixelCanvas",
+ "colors": [
+ [ 255, 255, 255 ],
+ [ 228, 228, 228 ],
+ [ 136, 136, 136 ],
+ [ 34, 34, 34 ],
+ [ 255, 167, 209 ],
+ [ 229, 0, 0 ],
+ [ 229, 149, 0 ],
+ [ 160, 106, 66 ],
+ [ 229, 217, 0 ],
+ [ 148, 224, 68 ],
+ [ 2, 190, 1 ],
+ [ 0, 211, 221 ],
+ [ 0, 131, 199 ],
+ [ 0, 0, 234 ],
+ [ 207, 110, 228 ],
+ [ 130, 0, 128 ]
+ ],
+ "size": 16384,
+ "hid": true,
+ "cli": 0,
+ "bcd": 10000,
+ "pcd": 10000,
+ "cds": 10000,
+ "ranked": false,
+ "req": -1,
+ "sd": "2020-07-05",
+ "desc": "Mirror of PixelCanvas"
}
}
diff --git a/src/components/CanvasSelectModal.jsx b/src/components/CanvasSelectModal.jsx
index 04047877..4772db28 100644
--- a/src/components/CanvasSelectModal.jsx
+++ b/src/components/CanvasSelectModal.jsx
@@ -11,7 +11,7 @@ import CanvasItem from './CanvasItem';
import type { State } from '../reducers';
-const CanvasSelectModal = ({ canvases }) => (
+const CanvasSelectModal = ({ canvases, showHiddenCanvases }) => (
(
{
Object.keys(canvases).map((canvasId) => (
-
+ (canvases[canvasId].hid && !showHiddenCanvases)
+ ? null
+ :
))
}
);
function mapStateToProps(state: State) {
- const { canvases } = state.canvas;
- return { canvases };
+ const {
+ canvases,
+ showHiddenCanvases,
+ } = state.canvas;
+ return { canvases, showHiddenCanvases };
}
const data = {
diff --git a/src/components/Converter.jsx b/src/components/Converter.jsx
index fac2878b..debcce2e 100644
--- a/src/components/Converter.jsx
+++ b/src/components/Converter.jsx
@@ -210,6 +210,7 @@ async function renderOutputImage(opts) {
function Converter({
canvasId,
canvases,
+ showHiddenCanvases,
}) {
const [selectedCanvas, selectCanvas] = useState(canvasId);
const [selectedFile, selectFile] = useState(null);
@@ -270,18 +271,21 @@ function Converter({
}}
>
{
- Object.keys(canvases).map((canvas) => ((canvases[canvas].v)
- ? null
- : (
-
- )))
+
+ )
+ ))
}
@@ -603,8 +607,12 @@ function Converter({
}
function mapStateToProps(state: State) {
- const { canvasId, canvases } = state.canvas;
- return { canvasId, canvases };
+ const {
+ canvasId,
+ canvases,
+ showHiddenCanvases,
+ } = state.canvas;
+ return { canvasId, canvases, showHiddenCanvases };
}
export default connect(mapStateToProps)(Converter);
diff --git a/src/controls/keypress.js b/src/controls/keypress.js
index c120e6e2..d6640bf3 100644
--- a/src/controls/keypress.js
+++ b/src/controls/keypress.js
@@ -9,6 +9,7 @@ import copy from '../utils/clipboard';
import {
toggleGrid,
toggleHistoricalView,
+ toggleHiddenCanvases,
togglePixelNotify,
toggleMute,
notify,
@@ -44,6 +45,10 @@ function onKeyPress(event: KeyboardEvent) {
store.dispatch(notify('Copied!'));
break;
}
+ case 'p': {
+ store.dispatch(toggleHiddenCanvases());
+ break;
+ }
default:
}
}
diff --git a/src/core/tilesBackup.js b/src/core/tilesBackup.js
index e36470f8..17ea0839 100644
--- a/src/core/tilesBackup.js
+++ b/src/core/tilesBackup.js
@@ -24,8 +24,8 @@ export async function updateBackupRedis(canvasRedis, backupRedis, canvases) {
for (let i = 0; i < ids.length; i += 1) {
const id = ids[i];
const canvas = canvases[id];
- if (canvas.v) {
- // ignore 3D canvases
+ if (canvas.v || canvas.hid) {
+ // ignore 3D and hiddedn canvases
continue;
}
const chunksXY = (canvas.size / TILE_SIZE);
@@ -72,8 +72,8 @@ export async function incrementialBackupRedis(
const id = ids[i];
const canvas = canvases[id];
- if (canvas.v) {
- // ignore 3D canvases
+ if (canvas.v || canvas.hid) {
+ // ignore 3D and hidden canvases
continue;
}
diff --git a/src/reducers/canvas.js b/src/reducers/canvas.js
index 0999a508..db8f6ad5 100644
--- a/src/reducers/canvas.js
+++ b/src/reducers/canvas.js
@@ -38,6 +38,7 @@ export type CanvasState = {
historicalTime: string,
// object with all canvas informations from all canvases like colors and size
canvases: Object,
+ showHiddenCanvases: boolean,
};
/*
@@ -140,6 +141,7 @@ const initialState: CanvasState = {
isHistoricalView: false,
historicalDate: null,
historicalTime: null,
+ showHiddenCanvases: false,
};
@@ -212,6 +214,13 @@ export default function canvasReducer(
};
}
+ case 'TOGGLE_HIDDEN_CANVASES': {
+ return {
+ ...state,
+ showHiddenCanvases: !state.showHiddenCanvases,
+ };
+ }
+
case 'SET_VIEW_COORDINATES': {
const { view } = action;
const { canvasSize } = state;