File indexing completed on 2025-05-04 05:31:00
0001 import React ,{useState,useEffect} from 'react' 0002 0003 const Nextcloud = (props) => { 0004 const [users, setUsers] = useState([]); 0005 const [userdefault, setUserdefault] = useState({'displayname':props.username}); 0006 const [imgpath,setImgpath] = useState(window.config.myopendesktopUrl+'/avatar/'); 0007 const [isloading, setIsloading] = useState(true); 0008 useEffect(() => { 0009 loadData(); 0010 },[]); 0011 0012 const loadData = () => { 0013 0014 fetch(`/json/nextcloud?username=${props.username}`, { 0015 mode: 'cors', 0016 credentials: 'include' 0017 }) 0018 .then(response => response.json()) 0019 .then(data => { 0020 let items = data; 0021 if (items && typeof(items.users) != "undefined") 0022 { 0023 setUsers(items.users); 0024 setIsloading(false); 0025 if(items.users && items.users.length>0) 0026 { 0027 setUserdefault(items.users[0]); 0028 0029 } 0030 } 0031 }); 0032 0033 } 0034 0035 return ( 0036 <div className="sub-system-container"> 0037 <div className="header">Nextcloud : {userdefault.displayname} 0038 { 0039 userdefault.displayname && userdefault.id && 0040 <> 0041 <img src={imgpath+userdefault.id+'/50'}></img> 0042 </> 0043 } 0044 { 0045 userdefault.id==null && !isloading && 0046 <span style={{color:'red'}}> User {userdefault.displayname} not existing </span> 0047 } 0048 </div> 0049 0050 <div> 0051 { 0052 isloading && 0053 <span>loading...</span> 0054 } 0055 <ul>{ 0056 0057 users.map((p,index) => 0058 <li key={index}> 0059 <img className="icon" src={imgpath+p.id+'/50'}></img> 0060 <div className="title"> 0061 <ul> 0062 <li>{'id:'+p.id}</li> 0063 <li>{'email:'+p.email}</li> 0064 <li>{'displayname:'+p.displayname}</li> 0065 <li>{'backend:'+p.backend}</li> 0066 </ul> 0067 0068 </div> 0069 </li> 0070 ) 0071 0072 } 0073 </ul> 0074 </div> 0075 </div> 0076 ) 0077 } 0078 0079 export default Nextcloud;