fix: update DesktopCard to prevent modal opening for offline servers and adjust ManagerSelect to initialize selected manager correctly
This commit is contained in:
@@ -41,7 +41,11 @@ export default function DesktopCard({ server }: IDesktopCardProps) {
|
|||||||
variant="secondary"
|
variant="secondary"
|
||||||
size="small"
|
size="small"
|
||||||
className="absolute top-[0.556vw] right-[0.556vw] cursor-pointer flex items-center justify-center"
|
className="absolute top-[0.556vw] right-[0.556vw] cursor-pointer flex items-center justify-center"
|
||||||
onClick={() => setModal(<EditTable table={server} />)}
|
onClick={() => {
|
||||||
|
if (server.status !== "offline") {
|
||||||
|
setModal(<EditTable table={server} />);
|
||||||
|
}
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
<span className="text-[#7D7D7D] w-[0.972vw] h-[0.972vw]">
|
<span className="text-[#7D7D7D] w-[0.972vw] h-[0.972vw]">
|
||||||
<CogIcon />
|
<CogIcon />
|
||||||
|
|||||||
@@ -15,12 +15,16 @@ function ManagerSelect({
|
|||||||
data: Manager[];
|
data: Manager[];
|
||||||
}) {
|
}) {
|
||||||
const [isOpen, setIsOpen] = useState(false);
|
const [isOpen, setIsOpen] = useState(false);
|
||||||
const [selectedManager, setSelectedManager] = useState<Manager | null>(
|
const [selectedManager, setSelectedManager] = useState<Manager | null>(null);
|
||||||
data[0]
|
|
||||||
);
|
|
||||||
const [position, setPosition] = useState<"top" | "bottom">("bottom");
|
const [position, setPosition] = useState<"top" | "bottom">("bottom");
|
||||||
const selectRef = useClickAway<HTMLDivElement>(() => setIsOpen(false));
|
const selectRef = useClickAway<HTMLDivElement>(() => setIsOpen(false));
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (data.length > 0 && !selectedManager) {
|
||||||
|
setSelectedManager(data[0]);
|
||||||
|
}
|
||||||
|
}, [data, selectedManager]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isOpen || !selectRef.current) return;
|
if (!isOpen || !selectRef.current) return;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user