Add possibility to have hidden canvses, mirror pz and pc

This commit is contained in:
HF 2020-07-05 11:22:40 +02:00
parent 5b4cc64699
commit fe3e1d7e79
7 changed files with 122 additions and 20 deletions

View File

@ -35,6 +35,12 @@ export function toggleHistoricalView(): Action {
}; };
} }
export function toggleHiddenCanvases(): Action {
return {
type: 'TOGGLE_HIDDEN_CANVASES',
};
}
export function toggleGrid(): Action { export function toggleGrid(): Action {
return { return {
type: 'TOGGLE_GRID', type: 'TOGGLE_GRID',

View File

@ -37,6 +37,7 @@
[ 130, 0, 128 ] [ 130, 0, 128 ]
], ],
"size": 65536, "size": 65536,
"hid": false,
"cli": 2, "cli": 2,
"bcd": 4000, "bcd": 4000,
"pcd" : 7000, "pcd" : 7000,
@ -84,6 +85,7 @@
[ 174, 215, 185 ] [ 174, 215, 185 ]
], ],
"size" : 4096, "size" : 4096,
"hid": false,
"cli": 2, "cli": 2,
"bcd": 15000, "bcd": 15000,
"pcd": 15000, "pcd": 15000,
@ -161,6 +163,7 @@
[ 174, 215, 185 ] [ 174, 215, 185 ]
], ],
"size": 1024, "size": 1024,
"hid": false,
"v": true, "v": true,
"cli": 2, "cli": 2,
"bcd": 2000, "bcd": 2000,
@ -199,6 +202,7 @@
[ 230, 206, 172 ] [ 230, 206, 172 ]
], ],
"size" : 256, "size" : 256,
"hid": false,
"cli": 2, "cli": 2,
"bcd": 500, "bcd": 500,
"pcd": 500, "pcd": 500,
@ -230,6 +234,7 @@
[ 250, 246, 0 ] [ 250, 246, 0 ]
], ],
"size": 1024, "size": 1024,
"hid": false,
"cli": 0, "cli": 0,
"bcd": 5000, "bcd": 5000,
"pcd": 5000, "pcd": 5000,
@ -238,5 +243,69 @@
"req": -1, "req": -1,
"sd": "2020-05-11", "sd": "2020-05-11",
"desc": "A meme" "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"
} }
} }

View File

@ -11,7 +11,7 @@ import CanvasItem from './CanvasItem';
import type { State } from '../reducers'; import type { State } from '../reducers';
const CanvasSelectModal = ({ canvases }) => ( const CanvasSelectModal = ({ canvases, showHiddenCanvases }) => (
<p style={{ <p style={{
textAlign: 'center', textAlign: 'center',
paddingLeft: '5%', paddingLeft: '5%',
@ -26,15 +26,20 @@ const CanvasSelectModal = ({ canvases }) => (
</p> </p>
{ {
Object.keys(canvases).map((canvasId) => ( Object.keys(canvases).map((canvasId) => (
<CanvasItem canvasId={canvasId} canvas={canvases[canvasId]} /> (canvases[canvasId].hid && !showHiddenCanvases)
? null
: <CanvasItem canvasId={canvasId} canvas={canvases[canvasId]} />
)) ))
} }
</p> </p>
); );
function mapStateToProps(state: State) { function mapStateToProps(state: State) {
const { canvases } = state.canvas; const {
return { canvases }; canvases,
showHiddenCanvases,
} = state.canvas;
return { canvases, showHiddenCanvases };
} }
const data = { const data = {

View File

@ -210,6 +210,7 @@ async function renderOutputImage(opts) {
function Converter({ function Converter({
canvasId, canvasId,
canvases, canvases,
showHiddenCanvases,
}) { }) {
const [selectedCanvas, selectCanvas] = useState(canvasId); const [selectedCanvas, selectCanvas] = useState(canvasId);
const [selectedFile, selectFile] = useState(null); const [selectedFile, selectFile] = useState(null);
@ -270,18 +271,21 @@ function Converter({
}} }}
> >
{ {
Object.keys(canvases).map((canvas) => ((canvases[canvas].v) Object.keys(canvases).map((canvas) => (
? null (canvases[canvas].v
: ( || (canvases[canvas].hid && !showHiddenCanvases))
<option ? null
selected={canvas === selectedCanvas} : (
value={canvas} <option
> selected={canvas === selectedCanvas}
{ value={canvas}
>
{
canvases[canvas].title canvases[canvas].title
} }
</option> </option>
))) )
))
} }
</select> </select>
</p> </p>
@ -603,8 +607,12 @@ function Converter({
} }
function mapStateToProps(state: State) { function mapStateToProps(state: State) {
const { canvasId, canvases } = state.canvas; const {
return { canvasId, canvases }; canvasId,
canvases,
showHiddenCanvases,
} = state.canvas;
return { canvasId, canvases, showHiddenCanvases };
} }
export default connect(mapStateToProps)(Converter); export default connect(mapStateToProps)(Converter);

View File

@ -9,6 +9,7 @@ import copy from '../utils/clipboard';
import { import {
toggleGrid, toggleGrid,
toggleHistoricalView, toggleHistoricalView,
toggleHiddenCanvases,
togglePixelNotify, togglePixelNotify,
toggleMute, toggleMute,
notify, notify,
@ -44,6 +45,10 @@ function onKeyPress(event: KeyboardEvent) {
store.dispatch(notify('Copied!')); store.dispatch(notify('Copied!'));
break; break;
} }
case 'p': {
store.dispatch(toggleHiddenCanvases());
break;
}
default: default:
} }
} }

View File

@ -24,8 +24,8 @@ export async function updateBackupRedis(canvasRedis, backupRedis, canvases) {
for (let i = 0; i < ids.length; i += 1) { for (let i = 0; i < ids.length; i += 1) {
const id = ids[i]; const id = ids[i];
const canvas = canvases[id]; const canvas = canvases[id];
if (canvas.v) { if (canvas.v || canvas.hid) {
// ignore 3D canvases // ignore 3D and hiddedn canvases
continue; continue;
} }
const chunksXY = (canvas.size / TILE_SIZE); const chunksXY = (canvas.size / TILE_SIZE);
@ -72,8 +72,8 @@ export async function incrementialBackupRedis(
const id = ids[i]; const id = ids[i];
const canvas = canvases[id]; const canvas = canvases[id];
if (canvas.v) { if (canvas.v || canvas.hid) {
// ignore 3D canvases // ignore 3D and hidden canvases
continue; continue;
} }

View File

@ -38,6 +38,7 @@ export type CanvasState = {
historicalTime: string, historicalTime: string,
// object with all canvas informations from all canvases like colors and size // object with all canvas informations from all canvases like colors and size
canvases: Object, canvases: Object,
showHiddenCanvases: boolean,
}; };
/* /*
@ -140,6 +141,7 @@ const initialState: CanvasState = {
isHistoricalView: false, isHistoricalView: false,
historicalDate: null, historicalDate: null,
historicalTime: 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': { case 'SET_VIEW_COORDINATES': {
const { view } = action; const { view } = action;
const { canvasSize } = state; const { canvasSize } = state;