more bin page themeing
This commit is contained in:
parent
605b6d69dd
commit
ac69c9b68f
4 changed files with 9 additions and 28 deletions
|
|
@ -112,6 +112,7 @@ const useStyles = makeStyles((theme: Theme) => {
|
||||||
},
|
},
|
||||||
tab: {
|
tab: {
|
||||||
...parentTab,
|
...parentTab,
|
||||||
|
color: theme.palette.text.primary
|
||||||
},
|
},
|
||||||
smallTab: {
|
smallTab: {
|
||||||
...parentTab,
|
...parentTab,
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { Tab, Tabs, TabsProps } from "@mui/material";
|
import { Tabs, TabsProps } from "@mui/material";
|
||||||
import React, { useEffect, useState, useRef } from "react";
|
import React, { useEffect, useState, useRef } from "react";
|
||||||
|
|
||||||
interface DraggableTabsProps extends TabsProps {
|
interface DraggableTabsProps extends TabsProps {
|
||||||
|
|
@ -17,7 +17,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const newOrder = initialChildren.map((_, index) => index);
|
const newOrder = initialChildren.map((_, index) => index);
|
||||||
console.log("Children updated. New tabOrder:", newOrder);
|
|
||||||
setTabOrder(newOrder);
|
setTabOrder(newOrder);
|
||||||
tabRefs.current = new Array(newOrder.length).fill(null); // Initialize refs
|
tabRefs.current = new Array(newOrder.length).fill(null); // Initialize refs
|
||||||
}, [initialChildren.length]);
|
}, [initialChildren.length]);
|
||||||
|
|
@ -40,7 +39,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
const endTabs = flattenNodes(endNode, "end");
|
const endTabs = flattenNodes(endNode, "end");
|
||||||
|
|
||||||
const handleDragStart = (e: React.DragEvent<HTMLDivElement>, index: number) => {
|
const handleDragStart = (e: React.DragEvent<HTMLDivElement>, index: number) => {
|
||||||
console.log("Drag started at index:", index);
|
|
||||||
e.dataTransfer.setData("text/plain", index.toString());
|
e.dataTransfer.setData("text/plain", index.toString());
|
||||||
e.dataTransfer.effectAllowed = "move";
|
e.dataTransfer.effectAllowed = "move";
|
||||||
};
|
};
|
||||||
|
|
@ -49,7 +47,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.dataTransfer.dropEffect = "move";
|
e.dataTransfer.dropEffect = "move";
|
||||||
setHoveredIndex(index); // Update hovered index
|
setHoveredIndex(index); // Update hovered index
|
||||||
console.log("Dragging over index:", index);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {
|
const handleDrop = (e: React.DragEvent<HTMLDivElement>) => {
|
||||||
|
|
@ -57,10 +54,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
const draggedIndex = Number(e.dataTransfer.getData("text/plain"));
|
const draggedIndex = Number(e.dataTransfer.getData("text/plain"));
|
||||||
const dropIndex = hoveredIndex; // Use the last hovered index
|
const dropIndex = hoveredIndex; // Use the last hovered index
|
||||||
|
|
||||||
console.log("Dragged from index:", draggedIndex);
|
|
||||||
console.log("Dropped at index:", dropIndex);
|
|
||||||
console.log("Current tabOrder before:", tabOrder);
|
|
||||||
|
|
||||||
if (dropIndex === -1) {
|
if (dropIndex === -1) {
|
||||||
console.log("Drop skipped: no valid drop target");
|
console.log("Drop skipped: no valid drop target");
|
||||||
return;
|
return;
|
||||||
|
|
@ -70,7 +63,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
const newOrder = [...tabOrder];
|
const newOrder = [...tabOrder];
|
||||||
const [draggedItem] = newOrder.splice(draggedIndex, 1);
|
const [draggedItem] = newOrder.splice(draggedIndex, 1);
|
||||||
newOrder.splice(dropIndex, 0, draggedItem);
|
newOrder.splice(dropIndex, 0, draggedItem);
|
||||||
console.log("New tabOrder after:", newOrder);
|
|
||||||
setTabOrder(newOrder);
|
setTabOrder(newOrder);
|
||||||
} else {
|
} else {
|
||||||
console.log("Drop skipped: invalid indices or same position");
|
console.log("Drop skipped: invalid indices or same position");
|
||||||
|
|
@ -78,15 +70,9 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
setHoveredIndex(-1); // Reset hovered index
|
setHoveredIndex(-1); // Reset hovered index
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleDragEnd = (e: React.DragEvent<HTMLDivElement>) => {
|
|
||||||
console.log("Drag ended");
|
|
||||||
setHoveredIndex(-1); // Reset on drag end
|
|
||||||
};
|
|
||||||
|
|
||||||
const enhancedChildren = React.Children.map(initialChildren, (child, originalIndex) => {
|
const enhancedChildren = React.Children.map(initialChildren, (child, originalIndex) => {
|
||||||
if (React.isValidElement(child)) {
|
if (React.isValidElement(child)) {
|
||||||
const currentIndex = tabOrder.indexOf(originalIndex);
|
const currentIndex = tabOrder.indexOf(originalIndex);
|
||||||
console.log("Original index:", originalIndex, "Current index:", currentIndex);
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
ref={(el) => (tabRefs.current[currentIndex] = el)} // Assign ref to each tab
|
ref={(el) => (tabRefs.current[currentIndex] = el)} // Assign ref to each tab
|
||||||
|
|
@ -94,7 +80,6 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
onDragStart={(e) => handleDragStart(e, currentIndex)}
|
onDragStart={(e) => handleDragStart(e, currentIndex)}
|
||||||
onDragOver={(e) => handleDragOver(e, currentIndex)}
|
onDragOver={(e) => handleDragOver(e, currentIndex)}
|
||||||
onDrop={handleDrop} // Handle drop on individual tabs
|
onDrop={handleDrop} // Handle drop on individual tabs
|
||||||
onDragEnd={handleDragEnd}
|
|
||||||
>
|
>
|
||||||
{React.cloneElement(child)}
|
{React.cloneElement(child)}
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -103,16 +88,8 @@ export default function DraggableTabs(props: DraggableTabsProps) {
|
||||||
return child;
|
return child;
|
||||||
}) || [];
|
}) || [];
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
console.log(hoveredIndex)
|
|
||||||
}, [hoveredIndex])
|
|
||||||
|
|
||||||
const orderedChildren = tabOrder.map((index) => enhancedChildren[index]);
|
const orderedChildren = tabOrder.map((index) => enhancedChildren[index]);
|
||||||
const allTabs = [...startTabs, ...orderedChildren, ...endTabs];
|
const allTabs = [...startTabs, ...orderedChildren, ...endTabs];
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
console.log("Current tab order:", tabOrder);
|
|
||||||
}, [tabOrder]);
|
|
||||||
|
|
||||||
return <Tabs {...tabsProps}>{allTabs}</Tabs>;
|
return <Tabs {...tabsProps}>{allTabs}</Tabs>;
|
||||||
}
|
}
|
||||||
|
|
@ -18,6 +18,7 @@ import {
|
||||||
ImageList,
|
ImageList,
|
||||||
ImageListItem,
|
ImageListItem,
|
||||||
InputLabel,
|
InputLabel,
|
||||||
|
lighten,
|
||||||
ListItemIcon,
|
ListItemIcon,
|
||||||
ListItemText,
|
ListItemText,
|
||||||
Menu,
|
Menu,
|
||||||
|
|
@ -83,6 +84,8 @@ import BinYards from "bin/BinYards";
|
||||||
// import { useHistory } from "react-router";
|
// import { useHistory } from "react-router";
|
||||||
|
|
||||||
const useStyles = makeStyles((theme: Theme) => {
|
const useStyles = makeStyles((theme: Theme) => {
|
||||||
|
const themeType = getThemeType();
|
||||||
|
const accordionBg = themeType === "light" ? theme.palette.background.paper : darken(theme.palette.background.paper, 0.2)
|
||||||
return ({
|
return ({
|
||||||
"@keyframes pulsate": {
|
"@keyframes pulsate": {
|
||||||
to: {
|
to: {
|
||||||
|
|
@ -116,7 +119,7 @@ const useStyles = makeStyles((theme: Theme) => {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
accordion: {
|
accordion: {
|
||||||
background: darken(theme.palette.background.paper, 0.4)
|
background: accordionBg
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ function options(themeType: "light" | "dark"): ThemeOptions {
|
||||||
const signature = getSignatureColour();
|
const signature = getSignatureColour();
|
||||||
const accent = getSignatureAccentColour();
|
const accent = getSignatureAccentColour();
|
||||||
const highlight = themeType === "light" ? "black" : "white";
|
const highlight = themeType === "light" ? "black" : "white";
|
||||||
const bg = generateBackgroundShades(themeType)
|
const bg = generateBackgroundShades(themeType);
|
||||||
return {
|
return {
|
||||||
cssVariables: true,
|
cssVariables: true,
|
||||||
zIndex: {
|
zIndex: {
|
||||||
|
|
@ -211,7 +211,7 @@ function options(themeType: "light" | "dark"): ThemeOptions {
|
||||||
styleOverrides: {
|
styleOverrides: {
|
||||||
root: {
|
root: {
|
||||||
'& .MuiTouchRipple-root': {
|
'& .MuiTouchRipple-root': {
|
||||||
color: highlight,
|
color: highlight,
|
||||||
},
|
},
|
||||||
'&:hover': {
|
'&:hover': {
|
||||||
color: highlight
|
color: highlight
|
||||||
|
|
@ -285,5 +285,5 @@ function options(themeType: "light" | "dark"): ThemeOptions {
|
||||||
// },
|
// },
|
||||||
// },
|
// },
|
||||||
}
|
}
|
||||||
} as ThemeOptions;
|
} as unknown as ThemeOptions;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue