mirror of
https://github.com/cloudreve/frontend.git
synced 2025-12-26 04:02:47 +00:00
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import React from "react";
|
|
import DropDownItem from "./DropDownItem";
|
|
|
|
export default function DropDown(props) {
|
|
let timer;
|
|
let first = props.folders.length;
|
|
const status = [];
|
|
for (let index = 0; index < props.folders.length; index++) {
|
|
status[index] = false;
|
|
}
|
|
|
|
const setActiveStatus = (id, value) => {
|
|
status[id] = value;
|
|
if (value) {
|
|
clearTimeout(timer);
|
|
} else {
|
|
let shouldClose = true;
|
|
status.forEach(element => {
|
|
if (element) {
|
|
shouldClose = false;
|
|
}
|
|
});
|
|
if (shouldClose) {
|
|
if (first <= 0) {
|
|
timer = setTimeout(() => {
|
|
props.onClose();
|
|
}, 100);
|
|
} else {
|
|
first--;
|
|
}
|
|
}
|
|
}
|
|
console.log(status);
|
|
};
|
|
|
|
return (
|
|
<>
|
|
{props.folders.map((folder, id) => (
|
|
<DropDownItem
|
|
key={id}
|
|
path={"/" + props.folders.slice(0, id).join("/")}
|
|
navigateTo={props.navigateTo}
|
|
id={id}
|
|
setActiveStatus={setActiveStatus}
|
|
folder={folder}
|
|
/>
|
|
))}
|
|
</>
|
|
);
|
|
}
|