import React from 'react'; import { makeStyles, useTheme, withStyles } from '@material-ui/core/styles'; import { useEffect } from 'react'; import AppBar from '@material-ui/core/AppBar'; import Toolbar from '@material-ui/core/Toolbar'; import Typography from '@material-ui/core/Typography'; import Button from '@material-ui/core/Button'; import IconButton from '@material-ui/core/IconButton'; import MenuIcon from '@material-ui/icons/Menu'; import clsx from 'clsx'; import Drawer from '@material-ui/core/Drawer'; import List from '@material-ui/core/List'; import CssBaseline from '@material-ui/core/CssBaseline'; import Divider from '@material-ui/core/Divider'; import ChevronLeftIcon from '@material-ui/icons/ChevronLeft'; import ChevronRightIcon from '@material-ui/icons/ChevronRight'; import ListItem from '@material-ui/core/ListItem'; import ListItemIcon from '@material-ui/core/ListItemIcon'; import ListItemText from '@material-ui/core/ListItemText'; import InfoIcon from '@material-ui/icons/Info'; import InboxIcon from '@material-ui/icons/MoveToInbox'; import MailIcon from '@material-ui/icons/Mail'; import ImageList from './imageList'; import PhotoIcon from '@material-ui/icons/Photo'; import ShareIcon from '@material-ui/icons/Share'; import PhotoAlbumIcon from '@material-ui/icons/PhotoAlbum'; import LibraryAddCheckIcon from '@material-ui/icons/LibraryAddCheck'; import Grid from '@material-ui/core/Grid'; import DeleteIcon from '@material-ui/icons/Delete'; import CloudUploadIcon from '@material-ui/icons/CloudUpload'; import HelpOutlineIcon from '@material-ui/icons/HelpOutline'; import SettingsIcon from '@material-ui/icons/Settings'; import Avatar from '@material-ui/core/Avatar'; import Icon from '@material-ui/core/Icon'; import AddCircle from '@material-ui/icons/AddCircle'; import CloudIcon from '@material-ui/icons/Cloud'; import LinearProgress from '@material-ui/core/LinearProgress'; import Modal from '@material-ui/core/Modal'; import Backdrop from '@material-ui/core/Backdrop'; import Fade from '@material-ui/core/Fade'; import ListItemAvatar from '@material-ui/core/ListItemAvatar'; import ImageIcon from '@material-ui/icons/Image'; import WorkIcon from '@material-ui/icons/Work'; import BeachAccessIcon from '@material-ui/icons/BeachAccess'; import Paper from '@material-ui/core/Paper'; import TodayIcon from '@material-ui/icons/Today'; import CropOriginalIcon from '@material-ui/icons/CropOriginal'; import CameraIcon from '@material-ui/icons/Camera'; import LocationOnIcon from '@material-ui/icons/LocationOn'; import CloseIcon from '@material-ui/icons/Close'; import ListSubheader from '@material-ui/core/ListSubheader'; import Fab from '@material-ui/core/Fab'; import AddIcon from '@material-ui/icons/Add'; import ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos'; import ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos'; import GridList from '@material-ui/core/GridList'; import GridListTile from '@material-ui/core/GridListTile'; import FolderList from './FolderList'; import Snackbar from '@material-ui/core/Snackbar'; import MuiAlert from '@material-ui/lab/Alert'; const drawerWidth = 240; const BorderLinearProgress = withStyles((theme) => ({ colorPrimary: { backgroundColor: theme.palette.grey[theme.palette.type === 'light' ? 200 : 700], }, bar: { borderRadius: 5, backgroundColor: '#1a90ff', }, }))(LinearProgress); const useStyles = makeStyles((theme) => ({ root: { flexGrow: 1, }, menuButton: { marginRight: theme.spacing(2), }, title: { flexGrow: 1, }, toolbar: { display: 'flex', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, }, root: { display: 'flex', }, appBar: { zIndex: theme.zIndex.drawer + 1, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), }, appBarShift: { marginLeft: drawerWidth, width: `calc(100% - ${drawerWidth}px)`, transition: theme.transitions.create(['width', 'margin'], { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }, menuButton: { marginRight: 36, }, hide: { display: 'none', }, drawer: { width: drawerWidth, flexShrink: 0, whiteSpace: 'nowrap', }, drawerOpen: { width: drawerWidth, transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.enteringScreen, }), }, drawerClose: { transition: theme.transitions.create('width', { easing: theme.transitions.easing.sharp, duration: theme.transitions.duration.leavingScreen, }), overflowX: 'hidden', width: theme.spacing(7) + 1, [theme.breakpoints.up('sm')]: { width: theme.spacing(9) + 1, }, }, toolbar: { display: 'flex', alignItems: 'center', justifyContent: 'flex-end', padding: theme.spacing(0, 1), // necessary for content to be below app bar ...theme.mixins.toolbar, }, content: { flexGrow: 1, padding: theme.spacing(3), }, modal: { display: 'flex', alignItems: 'center', justifyContent: 'center', }, paper: { backgroundColor: theme.palette.background.paper, width: '100%', height: '100%', //boxShadow: theme.shadows[5], //padding: theme.spacing(2, 4, 3), }, fabL: { position: 'absolute', bottom: '50%', left: theme.spacing(2), }, fabR: { position: 'absolute', bottom: '50%', //left: `calc(95% - ${theme.spacing(2)}px)`, //right: theme.spacing(2), right: `calc(${theme.spacing(2)}px + ( 100vw / 4 ))`, Mcontainer: { display: "flex", flexWrap: "wrap", position: "absolute", top: 0, left: 0, height: "100%", width: "100%", alignItems: "center" }, }, })); function Alert(props) { return ; } export default function Main(props) { //FOR AJAX const classes = useStyles(); const [error, setError] = React.useState(null); const [isLoaded, setIsLoaded] = React.useState(false); const [items, setItems] = React.useState([]); //END const theme = useTheme(); const [open, setOpen] = React.useState(false); const handleDrawerOpen = () => { setOpen(true); }; const handleDrawerClose = () => { setOpen(false); }; const [Settingopen, setSettingOpen] = React.useState(false); const handleSettingOpen = () => { setSettingOpen(true); }; const handleSettingClose = () => { setSettingOpen(false); }; const [Alertopen, setAlertOpen] = React.useState(false); const handleAlertClick = () => { setAlertOpen(true); }; const handleAlertClose = (event, reason) => { if (reason === 'clickaway') { return; } setAlertOpen(false); }; const [Imagelistopen, setImagelistOpen] = React.useState(true); const [Folderlistopen, setFolderlistOpen] = React.useState(false); const [folderName, setFolderName] = React.useState('user:/Photo/Photo/uploads/'); const setFolderNameF = (folderN) => { setFolderName(folderN); console.log("3" + folderName); setImagelistOpen(true); setFolderlistOpen(false); } const handleClick = value => () => { console.log(value); switch (value) { case "Photos": setImagelistOpen(true); setFolderlistOpen(false); break; case "Albums": setFolderlistOpen(true); setImagelistOpen(false); break; //case "Sharing": //setAlertOpen(true); //case "Utilities": //setAlertOpen(true); } } useEffect(() => { fetch("/backend_test/config", {}) /* fetch("/system/ajgi/interface?script=/Photo/backend/listFolder.js", { method: 'post', body: JSON.stringify({ folder: folderName }) }) */ .then(res => res.json()) .then( (result) => { setIsLoaded(true); setItems(result); }, // Note: it's important to handle errors here // instead of a catch() block so that we don't swallow // exceptions from actual bugs in components. (error) => { setIsLoaded(true); setError(error); } ) }, []) if (error) { return
Error: {error.message} (Config.js)
; } else if (!isLoaded) { return
; } else { return (
ArOZ Photo
{theme.direction === 'ltr' ? : }
{['Photos', /* 'Sharing', */ 'Albums', /* 'Utilities' */].map((text, index) => ( { /* index == 0 ? < PhotoIcon /> : index == 1 ? < ShareIcon /> : index == 2 ? < PhotoAlbumIcon /> : < LibraryAddCheckIcon /> */} {index == 0 ? < PhotoIcon /> : < PhotoAlbumIcon />} ))} < CloudIcon /> } />
{Imagelistopen && } {Folderlistopen && }
This function has not been implemented on this platform (aCloud 0x0)
); } }