51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
import React, { useEffect, useState } from "react";
|
|
import Loaders from "../../Loaders";
|
|
import { isMobileOnly, isTablet } from "react-device-detect";
|
|
import { size } from "@docspace/components/utils/device";
|
|
|
|
const EmptyContainerLoader = ({ viewAs }) => {
|
|
const [viewMobile, setViewMobile] = useState(false);
|
|
const [viewTablet, setViewTablet] = useState(false);
|
|
|
|
useEffect(() => {
|
|
onCheckView();
|
|
window.addEventListener("resize", onCheckView);
|
|
|
|
return () => window.removeEventListener("resize", onCheckView);
|
|
}, []);
|
|
|
|
const onCheckView = () => {
|
|
if (isMobileOnly || window.innerWidth < size.smallTablet) {
|
|
setViewMobile(true);
|
|
} else {
|
|
setViewMobile(false);
|
|
}
|
|
|
|
if (
|
|
isTablet ||
|
|
(window.innerWidth >= size.smallTablet &&
|
|
window.innerWidth <= size.tablet)
|
|
) {
|
|
setViewTablet(true);
|
|
} else {
|
|
setViewTablet(false);
|
|
}
|
|
};
|
|
|
|
return (
|
|
<>
|
|
{viewAs === "tile" ? (
|
|
!viewMobile && !viewTablet ? (
|
|
<Loaders.Tiles filesCount={7} />
|
|
) : (
|
|
<Loaders.Tiles />
|
|
)
|
|
) : (
|
|
<Loaders.Rows count={(viewMobile && 8) || (viewTablet && 12) || 9} />
|
|
)}
|
|
</>
|
|
);
|
|
};
|
|
|
|
export default EmptyContainerLoader;
|