diff --git a/src/component/Admin/Settings/Filesystem/EmojiList.tsx b/src/component/Admin/Settings/Filesystem/EmojiList.tsx index c6c3f52..d53c2b4 100644 --- a/src/component/Admin/Settings/Filesystem/EmojiList.tsx +++ b/src/component/Admin/Settings/Filesystem/EmojiList.tsx @@ -11,8 +11,7 @@ import { } from "../../../Common/StyledComponents.tsx"; import Add from "../../../Icons/Add.tsx"; import Dismiss from "../../../Icons/Dismiss.tsx"; -import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; -import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; +import ArrowDown from "../../../Icons/ArrowDown.tsx"; import { DndProvider, useDrag, useDrop } from "react-dnd"; import { HTML5Backend } from "react-dnd-html5-backend"; @@ -140,10 +139,21 @@ function DraggableEmojiRow({ moveRow(i, i - 1)} disabled={isFirst}> - + moveRow(i, i + 1)} disabled={isLast}> - + diff --git a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerEditDialog.tsx b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerEditDialog.tsx index c57192c..8892397 100644 --- a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerEditDialog.tsx +++ b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerEditDialog.tsx @@ -38,8 +38,7 @@ import Dismiss from "../../../../Icons/Dismiss.tsx"; import SettingForm from "../../../../Pages/Setting/SettingForm.tsx"; import MagicVarDialog, { MagicVar } from "../../../Common/MagicVarDialog.tsx"; import { NoMarginHelperText } from "../../Settings.tsx"; -import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; -import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; +import ArrowDown from "../../../../Icons/ArrowDown.tsx"; import { DndProvider, useDrag, useDrop } from "react-dnd"; import { HTML5Backend } from "react-dnd-html5-backend"; import { SelectChangeEvent } from "@mui/material"; @@ -112,21 +111,21 @@ function DraggableTemplateRow({ i, moveRow, onExtChange, onNameChange, onDelete, accept: DND_TYPE, hover(item: any, monitor) { if (!ref.current) return; - + const dragIndex = item.index; const hoverIndex = i; if (dragIndex === hoverIndex) return; - + const hoverBoundingRect = ref.current.getBoundingClientRect(); const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; const clientOffset = monitor.getClientOffset(); if (!clientOffset) return; - + const hoverClientY = clientOffset.y - hoverBoundingRect.top; - + if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) return; if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) return; - + moveRow(dragIndex, hoverIndex); item.index = hoverIndex; }, @@ -171,10 +170,21 @@ function DraggableTemplateRow({ i, moveRow, onExtChange, onNameChange, onDelete, moveRow(i, i - 1)} disabled={isFirst}> - + moveRow(i, i + 1)} disabled={isLast}> - + diff --git a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerList.tsx b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerList.tsx index d88e416..f241062 100644 --- a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerList.tsx +++ b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerList.tsx @@ -35,6 +35,7 @@ interface ViewerGroupProps { index: number; onDelete: (e: React.MouseEvent) => void; onGroupChange: (g: ViewerGroup) => void; + dndType: string; } const DND_TYPE = "viewer-row"; @@ -49,10 +50,11 @@ const DraggableViewerRow = memo(function DraggableViewerRow({ onMoveDown, isLast, isFirst, + dndType, }: any) { const ref = React.useRef(null); const [, drop] = useDrop({ - accept: DND_TYPE, + accept: dndType, hover(item: any, monitor) { if (!ref.current) return; @@ -75,7 +77,7 @@ const DraggableViewerRow = memo(function DraggableViewerRow({ }, }); const [{ isDragging }, drag] = useDrag({ - type: DND_TYPE, + type: dndType, item: { index }, collect: (monitor) => ({ isDragging: monitor.isDragging(), @@ -97,7 +99,7 @@ const DraggableViewerRow = memo(function DraggableViewerRow({ ); }); -const ViewerGroupRow = memo(({ group, index, onDelete, onGroupChange }: ViewerGroupProps) => { +const ViewerGroupRow = memo(({ group, index, onDelete, onGroupChange, dndType }: ViewerGroupProps) => { const { t } = useTranslation("dashboard"); const onViewerChange = useMemo(() => { @@ -195,6 +197,7 @@ const ViewerGroupRow = memo(({ group, index, onDelete, onGroupChange }: ViewerGr onMoveDown={() => handleMoveDown(idx)} isFirst={idx === 0} isLast={idx === viewers.length - 1} + dndType={dndType} /> ))} @@ -289,6 +292,7 @@ const FileViewerList = memo(({ config, onChange }: FileViewerListProps) => { key={index} onDelete={onGroupDelete[index]} onGroupChange={onGroupChange[index]} + dndType={`viewer-row-${index}`} /> ))} } sx={{ mt: 1 }}> diff --git a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerRow.tsx b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerRow.tsx index 13d18a2..433c2c8 100644 --- a/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerRow.tsx +++ b/src/component/Admin/Settings/Filesystem/ViewerSetting/FileViewerRow.tsx @@ -8,8 +8,7 @@ import { ViewerIcon } from "../../../../FileManager/Dialogs/OpenWith.tsx"; import Dismiss from "../../../../Icons/Dismiss.tsx"; import Edit from "../../../../Icons/Edit.tsx"; import FileViewerEditDialog from "./FileViewerEditDialog.tsx"; -import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; -import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; +import ArrowDown from "../../../../Icons/ArrowDown.tsx"; export interface FileViewerRowProps { viewer: Viewer; @@ -103,10 +102,21 @@ const FileViewerRow = React.memo( - + - + diff --git a/src/component/FileManager/Explorer/ListView/ColumnSetting.tsx b/src/component/FileManager/Explorer/ListView/ColumnSetting.tsx index b98a3bc..bc2dc27 100644 --- a/src/component/FileManager/Explorer/ListView/ColumnSetting.tsx +++ b/src/component/FileManager/Explorer/ListView/ColumnSetting.tsx @@ -23,8 +23,7 @@ import Dismiss from "../../../Icons/Dismiss.tsx"; import { FileManagerIndex } from "../../FileManager.tsx"; import AddColumn from "./AddColumn.tsx"; import { getColumnTypeDefaults, ListViewColumnSetting } from "./Column.tsx"; -import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; -import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; +import ArrowDown from "../../../Icons/ArrowDown.tsx"; import { DndProvider, useDrag, useDrop } from "react-dnd"; import { HTML5Backend } from "react-dnd-html5-backend"; import React from "react"; @@ -50,21 +49,21 @@ const DraggableColumnRow: React.FC = ({ column, index, accept: DND_TYPE, hover(item: any, monitor) { if (!ref.current) return; - + const dragIndex = item.index; const hoverIndex = index; if (dragIndex === hoverIndex) return; - + const hoverBoundingRect = ref.current.getBoundingClientRect(); const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; const clientOffset = monitor.getClientOffset(); if (!clientOffset) return; - + const hoverClientY = clientOffset.y - hoverBoundingRect.top; - + if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) return; if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) return; - + moveRow(dragIndex, hoverIndex); item.index = hoverIndex; }, @@ -90,10 +89,21 @@ const DraggableColumnRow: React.FC = ({ column, index, moveRow(index, index - 1)} disabled={isFirst}> - + moveRow(index, index + 1)} disabled={isLast}> - + onDelete(index)} disabled={columns.length <= 1}>