Skip to content
Snippets Groups Projects
HorizontalTimeline.tsx 7.49 KiB
Newer Older
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
import { NewHPMoreButton } from "./Buttons";
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
import { timelinedata } from "../data/hptimelinedata";
function TimeItem({tag, title, pic, author, tabid, month}: ItemProps){
    let cl = "t-tag " + tag;
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    return(
    <li className="timelineolli">
      <div className="timeline-item moretop">
        <div className="">
        <div className="row" style={{paddingLeft: "10px", paddingRight: "15px"}}>
              <div className={cl}>
                  {tag}
              </div>
              <div className="col">
                 
              </div>
              <div className="col-6 t-tag" style={{color: "black", backgroundColor: "#e2dad7"}}>
                  {month}
              </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            
Liliana Sanfilippo's avatar
hp  
Liliana Sanfilippo committed
            <div className="fillup-wrapper">
            <div className="row align-items-center fillup">
                <div className="col" >
                <img className="img-round" src={pic} />
                </div>
                <div className="col" >
                    {title}
                </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              </div>
Liliana Sanfilippo's avatar
hp  
Liliana Sanfilippo committed
           </div>
            <div className="row align-items-center hpbuttonrow">
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              <div className="col">
                <p style={{marginTop: "10px"}}>{author}</p>
              </div>
              <div className="col-4">
                <div className="tab">
                <NewHPMoreButton tab={tabid} scroll={`${tabid}-heading`}/>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
                </div>
              </div>
            </div>
            
            
        </div>
      </div>
    </li>
    )
  }
  
  function TimeItemMeta({ tag, title, pic, author, tabid, month}: ItemProps){
    let cl = "t-tag " + tag;
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    return(
    <li className="timelineolli">
      <div className="timeline-item time-meta moretop">
        <div className="">
            <div className="row" style={{paddingLeft: "10px", paddingRight: "15px"}}>
              <div className={`${cl} col-6 t-tag `}>
                  {tag}
              </div>
              <div className="col">
                 
              </div>
              <div className="col-6 t-tag" style={{color: "black", backgroundColor: "#e2dad7"}}>
                  {month}
              </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            </div>
            
Liliana Sanfilippo's avatar
hp  
Liliana Sanfilippo committed
           <div className="fillup-wrapper">
            <div className="row align-items-center fillup">
                <div className="col" >
                <img className="img-cube" src={pic} />
                </div>
                <div className="col" >
                    {title}
                </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              </div>
Liliana Sanfilippo's avatar
hp  
Liliana Sanfilippo committed
           </div>
            <div className="row align-items-center hpbuttonrow">
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              <div className="col">
                <p style={{marginTop: "10px"}}>{author}</p>
              </div>
              <div className="col-4">
                <div className="tab">
                <NewHPMoreButton tab={tabid} scroll={`${tabid}-heading`}/>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
                </div>
              </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            </div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            
            
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
        </div>
      </div>
    </li>
    )
  }
  
  export function CombiTimeHori({tab1, tab2}:{tab1: string, tab2: string}){
    let nod; 

    
      /* console.log("Tab") */
      nod = getItemsByTypes(tab1, tab2);
    
    return(
    <div>
  <section className="timeline">
  <ol className="timelineol">
      {nod}
    <li className="timelineolli"></li>
  </ol>
  
  
  </section>
  </div>
    )
  
  }
 export function getItemsByTypes(tabid1: string, tabid2: string) {
        let rows: JSX.Element[]  = []
        for (let i = 0; i < timelinedata.length; i++) {
            if (tabid1 === timelinedata[i].tag || tabid2 === timelinedata[i].tag) {
              var name: string; 
              if (timelinedata[i].title) {
                name = timelinedata[i].title! + " " + timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
              }
              else{
                name =  timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
              }
                rows.push(<TimeItem
                  key={i}
                  title={timelinedata[i].heading}
                  pic={timelinedata[i].pictureurl}
                  tag={timelinedata[i].tag}
                  author={name}
                  tabid={timelinedata[i].interviewtabid} 
                  month={timelinedata[i].months}  >
                </TimeItem>)
            }
        }
        return rows; 
    }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
  
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
  export default function TimeHori({tab}:{tab: string}){
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    let nod; 
    /* console.log("TimeHori") */
    if (tab === ""){  
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      nod = <AllItems></AllItems>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      /* console.log("Tab = ''") */
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    }
    else{
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      /* console.log("Tab") */
      nod = getItemsByType(tab);
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    return(
    <div>
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
  <section className="timeline">
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
  <ol className="timelineol">
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      {nod}
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    <li className="timelineolli"></li>
  </ol>
  
  
  </section>
  </div>
  
    )
  }
  
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
  
      
      interface ItemProps {
        title: string ,
        children?: React.ReactNode;
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
        tag: string, 
        pic: string,
        author: string, 
        tabid: string
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
        }
    
        


      function AllItems(){
        let rows: JSX.Element[]  = []
        for ( let i = 0;  i < timelinedata.length; i++ ){
          if (timelinedata[i].type === "meta"){
            var name: string; 
            if (timelinedata[i].title) {
              name = timelinedata[i].title! + " " + timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
            }
            else{
              name =  timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
            }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            rows.push(<TimeItemMeta 
              title={timelinedata[i].heading}
              pic={timelinedata[i].pictureurl}
              tag={timelinedata[i].tag}
              author={name}
              tabid={timelinedata[i].interviewtabid}
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              </TimeItemMeta>)
          }
          else{
            var name: string; 
            if (timelinedata[i].title) {
              name = timelinedata[i].title! + " " + timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
            }
            else{
              name =  timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
            }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
            rows.push(<TimeItem 
              title={timelinedata[i].heading}
              pic={timelinedata[i].pictureurl}
              tag={timelinedata[i].tag}
              author={name}
              tabid={timelinedata[i].interviewtabid} 
              month={timelinedata[i].months}             >
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
              </TimeItem>)
          }
          
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
        }
        return rows; 
      }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed

Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
      export function getItemsByType(tabid: string) {
        let rows: JSX.Element[]  = []
        for (let i = 0; i < timelinedata.length; i++) {
            if (tabid === timelinedata[i].tag) {
              var name: string; 
              if (timelinedata[i].title) {
                name = timelinedata[i].title! + " " + timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
              }
              else{
                name =  timelinedata[i].vorname + " " +  timelinedata[i].nachnname;
              }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
                rows.push(<TimeItem
                  key={i}
                  title={timelinedata[i].heading}
                  pic={timelinedata[i].pictureurl}
                  tag={timelinedata[i].tag}
                  author={name}
                  tabid={timelinedata[i].interviewtabid} 
                  month={timelinedata[i].months}  >
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
                </TimeItem>)
            }
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
        }
        return rows; 
Liliana Sanfilippo's avatar
Liliana Sanfilippo committed
    }