From ca52b7ecd71f799948c42d16718d10a17ea80dcc Mon Sep 17 00:00:00 2001 From: HF Date: Sat, 24 Feb 2024 11:12:26 +0100 Subject: [PATCH] add ability to set default canvas by server sort CanvasSelection list with default canvas first and linked canvases after the canvas they link to --- src/components/ModCanvastools.jsx | 1 + src/components/windows/CanvasSelect.jsx | 17 ++++++++++++++--- src/core/CanvasCleaner.js | 4 ++-- src/store/reducers/canvas.js | 3 +++ 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/components/ModCanvastools.jsx b/src/components/ModCanvastools.jsx index b89eebe..16affc8 100644 --- a/src/components/ModCanvastools.jsx +++ b/src/components/ModCanvastools.jsx @@ -194,6 +194,7 @@ function ModCanvastools() { case 'makenull': // eslint-disable-next-line max-len descCleanAction = t`Turn every pixel in area to 0 (YOU REALLY SHOULDN'T DO THAT ON ANY AREA THAT ISN'T ALREADY MOSTLY 0)`; + break; default: // nothing } diff --git a/src/components/windows/CanvasSelect.jsx b/src/components/windows/CanvasSelect.jsx index 9d976bd..d7e1896 100644 --- a/src/components/windows/CanvasSelect.jsx +++ b/src/components/windows/CanvasSelect.jsx @@ -37,8 +37,19 @@ Archive of removed canvases can be accessed here:`}  >{t`Archive`}

{ - Object.keys(canvases).map((canvasId) => ( - (!canvases[canvasId].hid || showHiddenCanvases) + Object.keys(canvases) + .sort((a, b) => { + // display forced default canvas first + if (a === window.ssv.dc) return -1; + if (b === window.ssv.dc) return 1; + // display linked canvas right after canvas they are linked too + // eslint-disable-next-line eqeqeq + if (canvases[a].linkcd != null) a = canvases[a].linkcd + 0.1; + // eslint-disable-next-line eqeqeq + if (canvases[b].linkcd != null) b = canvases[b].linkcd + 0.1; + return a - b; + }).map((canvasId) => ( + (!canvases[canvasId].hid || showHiddenCanvases) && !canvases[canvasId].ed && ( ) - )) + )) } { (window.ssv?.backupurl diff --git a/src/core/CanvasCleaner.js b/src/core/CanvasCleaner.js index b73932b..5d37365 100644 --- a/src/core/CanvasCleaner.js +++ b/src/core/CanvasCleaner.js @@ -120,9 +120,9 @@ const METHODS = { } return finPxl; }, - + makenull: (xc, yc, clrIgnore, canvasCleaner) => { - let pxl = canvasCleaner.getPixelInChunkArea(xc, yc); + const pxl = canvasCleaner.getPixelInChunkArea(xc, yc); if (pxl === null || pxl === 0) { return null; } diff --git a/src/store/reducers/canvas.js b/src/store/reducers/canvas.js index 469b0b0..aea8fe6 100644 --- a/src/store/reducers/canvas.js +++ b/src/store/reducers/canvas.js @@ -100,6 +100,9 @@ function getViewFromURL(canvases) { let canvasIdent = almost[0]; let canvasId = getIdFromObject(canvases, canvasIdent); + if (!canvasId && window.ssv.dc) { + canvasId = window.ssv.dc; + } if (!canvasId || (!window.ssv?.backupurl && canvases[canvasId].ed)) { canvasId = DEFAULT_CANVAS_ID; const canvas = canvases[DEFAULT_CANVAS_ID];