+ {tabs.map((tab) => {
+ const active = tab.id === activeTab;
+ return (
+
+ );
+ })}
+
+ );
+}
diff --git a/website/src/components/ToastPositionSwitch.jsx b/website/src/components/ToastPositionSwitch.jsx
new file mode 100644
index 0000000..81104d9
--- /dev/null
+++ b/website/src/components/ToastPositionSwitch.jsx
@@ -0,0 +1,20 @@
+// Rôle : affiche le switch global de position des notifications internes.
+import React from "react";
+import { Icon } from "./Icon.jsx";
+
+export function ToastPositionSwitch({ position, labels, onChange }) {
+ const normalizedPosition = position === "left" ? "left" : "right";
+ return (
+
- {message}
+
+ {message}
+
);
}
diff --git a/website/src/features/toolboxes/ToolboxPages.jsx b/website/src/features/toolboxes/ToolboxPages.jsx
index c42d0e5..5133967 100644
--- a/website/src/features/toolboxes/ToolboxPages.jsx
+++ b/website/src/features/toolboxes/ToolboxPages.jsx
@@ -3,6 +3,7 @@ import React, { useEffect, useRef, useState } from "react";
import { Icon } from "../../components/Icon.jsx";
import { ImportButton } from "../../components/ImportButton.jsx";
import { StorageQuota } from "../../components/StorageQuota.jsx";
+import { ToastPositionSwitch } from "../../components/ToastPositionSwitch.jsx";
import { usePointerReorder } from "../../hooks/usePointerReorder.js";
import { compressImage } from "../../utils/imageCompression.js";
import { getSetting as dbGetSetting, setSetting as dbSetSetting } from "../../utils/indexedDbStorage.js";
@@ -16,6 +17,7 @@ import {
normalizeCountersData,
normalizeImageAnnotationData,
normalizeLinksData,
+ normalizeTimerData,
normalizeUrl,
uid
} from "./storage/toolboxStorage.js";
@@ -31,7 +33,7 @@ async function copyText(value) {
}
}
-export function ToolboxesPage({ siteContent, toolboxes, getToolboxGame, actions, storageUsage }) {
+export function ToolboxesPage({ siteContent, toolboxes, getToolboxGame, actions, storageUsage, toastPosition, setToastPosition }) {
const content = siteContent.toolboxes;
const {
draggingId: draggingToolboxId,
@@ -71,6 +73,21 @@ export function ToolboxesPage({ siteContent, toolboxes, getToolboxGame, actions,
+