From a11d6a86f3afd99fd512fb18732532a64877bd16 Mon Sep 17 00:00:00 2001 From: Anthony Geourjon <anthony.geourjon@tetras-libre.fr> Date: Tue, 6 Feb 2024 11:13:43 +0100 Subject: [PATCH] Add default value for toolstate and remove useless code --- src/AnnotationCreation.js | 11 +---- src/AnnotationCreationUtils.js | 45 ++++--------------- .../AnnotationFormOverlayToolOptions.js | 3 +- .../KonvaDrawing/KonvaUtils.js | 2 + 4 files changed, 14 insertions(+), 47 deletions(-) diff --git a/src/AnnotationCreation.js b/src/AnnotationCreation.js index acd0c03..f0094ef 100644 --- a/src/AnnotationCreation.js +++ b/src/AnnotationCreation.js @@ -14,6 +14,7 @@ import AnnotationDrawing from './annotationForm/AnnotationDrawing'; import AnnotationFormContent from './annotationForm/AnnotationFormContent'; import AnnotationFormTime from './annotationForm/AnnotationFormTime'; import { + defaultToolState, geomFromAnnoTarget, timeFromAnnoTarget, } from './AnnotationCreationUtils'; import AnnotationFormOverlay from './annotationForm/AnnotationFormOverlay/AnnotationFormOverlay'; @@ -28,15 +29,7 @@ const MANIFEST_LINK_VIEW = 'link'; /** Component for creating annotations. * Display in companion window when a manifest is open and an annoation created or edited */ function AnnotationCreation(props) { - const [toolState, setToolState] = useState({ - activeTool: 'edit', - closedMode: 'closed', - fillColor: 'rgba(255, 0, 0, 0.5)', - image: { id: null }, - imageEvent: null, - strokeColor: 'rgba(255, 0, 0, 0.5)', - strokeWidth: 20, - }); + const [toolState, setToolState] = useState(defaultToolState); const [drawingState, setDrawingState] = useState({ currentShape: null, diff --git a/src/AnnotationCreationUtils.js b/src/AnnotationCreationUtils.js index 1020ca8..dbc8282 100644 --- a/src/AnnotationCreationUtils.js +++ b/src/AnnotationCreationUtils.js @@ -1,10 +1,3 @@ -import axios from 'axios'; - -export const fileUploaderUrl = 'https://scene-uploads.tetras-libre.fr/upload'; -export const fileReaderUrl = 'https://scene-uploads.tetras-libre.fr/static/'; -/*const fileUploaderUrl = 'http://localhost:3000/upload'; -const fileReaderUrl = 'http://localhost:3000/static/';*/ - /** Extract time information from annotation target */ export function timeFromAnnoTarget(annotarget) { console.info('TODO proper time extraction from: ', annotarget); @@ -74,34 +67,12 @@ export async function saveAnnotationInEachCanvas(canvases, config, receiveAnnota }); } -const sendFile = async (fileContent) => { - const blob = new Blob([fileContent], { type: 'image/svg+xml'}); - - const formData = new FormData(); - formData.append('file', blob); - - try { - const response = await axios.post(fileUploaderUrl, formData, { - headers: { - 'Access-Control-Allow-Origin': '*', - 'Cache-Control': 'no-cache', - 'Content-Type': 'multipart/form-data', - }, - }); - console.log('File Uploaded', response.data); - return response.data.file.filename; - } catch (error) { - return ''; - console.error('Error uploading file:', error); - } -}; - - -function dataURLtoBlob(dataurl) { - var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], - bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n); - while(n--){ - u8arr[n] = bstr.charCodeAt(n); - } - return new Blob([u8arr], {type:mime}); +export const defaultToolState = { + activeTool: OVERLAY_TOOL.EDIT, + closedMode: 'closed', + fillColor: 'rgba(83,162, 235, 50)', + image: { id: null }, + imageEvent: null, + strokeColor: 'rgba(20,82,168,100)', + strokeWidth: 2, } diff --git a/src/annotationForm/AnnotationFormOverlay/AnnotationFormOverlayToolOptions.js b/src/annotationForm/AnnotationFormOverlay/AnnotationFormOverlayToolOptions.js index a244a31..1fa0f56 100644 --- a/src/annotationForm/AnnotationFormOverlay/AnnotationFormOverlayToolOptions.js +++ b/src/annotationForm/AnnotationFormOverlay/AnnotationFormOverlayToolOptions.js @@ -19,6 +19,7 @@ import AddPhotoAlternateIcon from '@mui/icons-material/AddPhotoAlternate'; import { v4 as uuidv4 } from 'uuid'; import ImageFormField from './ImageFormField'; import { isShapesTool, OVERLAY_TOOL } from '../../AnnotationCreationUtils'; +import { defaultLineWeightChoices } from './KonvaDrawing/KonvaUtils'; const StyledDivider = styled(Divider)(({ theme }) => ({ margin: theme.spacing(1, 0.5), @@ -228,7 +229,7 @@ function AnnotationFormOverlayToolOptions({ updateToolState, toolState }) { <Paper> <ClickAwayListener onClickAway={handleCloseLineWeight}> <MenuList autoFocus role="listbox"> - {[5, 10, 20, 50].map((option, index) => ( + {defaultLineWeightChoices.map((option, index) => ( <MenuItem key={option} onClick={handleLineWeightSelect} diff --git a/src/annotationForm/AnnotationFormOverlay/KonvaDrawing/KonvaUtils.js b/src/annotationForm/AnnotationFormOverlay/KonvaDrawing/KonvaUtils.js index 4937b8c..3536a38 100644 --- a/src/annotationForm/AnnotationFormOverlay/KonvaDrawing/KonvaUtils.js +++ b/src/annotationForm/AnnotationFormOverlay/KonvaDrawing/KonvaUtils.js @@ -21,3 +21,5 @@ export async function getKonvaAsDataURL(windowId) { console.log('dataURL:', dataURL); return dataURL; } + +export const defaultLineWeightChoices = [0, 2, 5, 10, 20, 50]; -- GitLab