Dejvino's Curriculum Vitae
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

45 linhas
1.5 KiB

  1. import React from 'react';
  2. import Card from 'react-bootstrap/Card';
  3. import { Placeholder } from 'react-bootstrap';
  4. import JobTags from './JobTags';
  5. import { Job } from '@/PersonalDataTypes';
  6. import md from '../Markdown';
  7. export type Props = Job & {
  8. heading?: string
  9. };
  10. export function JobCardPlaceholder() {
  11. return <Card className='job-card'>
  12. <Card.Body>
  13. <Placeholder as={Card.Title} animation="glow">
  14. <Placeholder xs={6} />
  15. </Placeholder>
  16. <Placeholder as={Card.Text} animation="glow">
  17. <Placeholder xs={7} /> <Placeholder xs={4} /> <Placeholder xs={5} />{' '}
  18. <Placeholder xs={4} /> <Placeholder xs={3} />
  19. </Placeholder>
  20. </Card.Body>
  21. </Card>
  22. }
  23. export default function JobCard(props: Props) {
  24. return (
  25. <Card className='job-card'>
  26. {props.heading && (
  27. <Card.Header>{props.heading}</Card.Header>
  28. )}
  29. <Card.Body>
  30. <Card.Title>{props.position}</Card.Title>
  31. <Card.Subtitle>
  32. {props.company && <span className='company-name'>{props.company}</span>}
  33. {props.company && props.timerange && <span>, </span>}
  34. {props.timerange && <span className='timerange'>{props.timerange}</span>}
  35. </Card.Subtitle>
  36. <div className='multiline job-description'>{md(props.description)}</div>
  37. {props.tags && <JobTags tags={props.tags} />}
  38. </Card.Body>
  39. </Card>
  40. );
  41. }