File indexing completed on 2025-05-04 05:31:00

0001 import React ,{useState,useEffect} from 'react'
0002 import TimeAgo from 'react-timeago'
0003 const Mastodon = (props) => {
0004     const [posts, setPosts] = useState([]);
0005     const [user, setUser] = useState({'username':''});
0006     const [mastodonUrl, setMastodonUrl] = useState(window.config.mastodonUrl);
0007     const [baseUrl, setBaseUrl] = useState(window.config.baseUrl);
0008     useEffect(() => {                 
0009         loadData();
0010     },[]);
0011 
0012     const loadData =  () => {       
0013         fetch(`/json/socialuserstatuses?username=${props.username}`, {
0014             mode: 'cors',
0015             credentials: 'include'
0016           })
0017           .then(response => response.json())
0018           .then(data => {
0019                 let items = data;
0020                 console.log(items.user.account);
0021 
0022                 if ( items && typeof(items.statuses) != "undefined")        
0023                 {                                
0024                     setPosts(items.statuses);      
0025                 }
0026                 
0027                 if (items && typeof(items.user.account) != "undefined")   
0028                 {
0029                     setUser(items.user.account);
0030                 }
0031           }); 
0032         
0033       }
0034 
0035     return (
0036         <div className="sub-system-container">  
0037         <div className="header">Mastodon : <a href={user.url}>{user.username} </a>
0038         {
0039             user.avatar &&                    
0040             <img src={user.avatar} style={{width:'48px',height: '48px', borderRadius:'10px'}}></img>         
0041         }
0042         
0043         </div>  
0044         <div>
0045         <ul>{
0046             posts.slice(0, 5).map((p,index) =>       
0047             <li key={index}>                
0048                 <div className="title">
0049                     <a className="title" href={p.url}>
0050                         <span>{p.content.replace(/(<([^>]+)>)/ig,"")}</span>                                              
0051                     </a> <TimeAgo date={p.created_at} />
0052                 </div>
0053             </li>
0054             )
0055         }
0056         </ul>
0057         </div>   
0058              
0059         </div>
0060     )
0061 }
0062 
0063 export default Mastodon;