Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3091 | Rev 3694 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3091 Rev 3092
Línea 1... Línea 1...
1
import React, { useEffect, useState } from 'react'
1
import React, { useEffect, useState } from 'react'
2
import { useDispatch } from 'react-redux'
2
import { useDispatch } from 'react-redux'
3
import { Box, Chip, Grid, styled, Typography } from '@mui/material'
3
import { Box, Button, Chip, Grid, Typography } from '@mui/material'
4
import {
-
 
5
  Favorite,
-
 
6
  FavoriteBorder,
-
 
7
  LocationOn,
-
 
8
  Email,
-
 
9
  Visibility
-
 
10
} from '@mui/icons-material'
4
import { Email, Visibility } from '@mui/icons-material'
Línea 11... Línea 5...
11
 
5
 
12
import { axios, parse } from '@utils'
6
import { axios, parse } from '@utils'
Línea 13... Línea 7...
13
import { addNotification } from '@store/notification/notification.actions'
7
import { addNotification } from '@store/notification/notification.actions'
Línea 14... Línea -...
14
 
-
 
15
import Widget from '@components/UI/Widget'
-
 
16
 
-
 
17
const StyledHeart = styled(Favorite)`
-
 
18
  animation: heartBeatAnimation 0.2s linear;
-
 
19
 
-
 
20
  @keyframes heartBeatAnimation {
-
 
21
    0% {
-
 
22
      transform: scale(1);
-
 
23
    }
-
 
24
    50% {
-
 
25
      transform: scale(1.3);
-
 
26
    }
-
 
27
    100% {
-
 
28
      transform: scale(1);
-
 
29
    }
-
 
30
  }
-
 
31
`
-
 
32
 
-
 
33
const StyledHeartOutline = styled(FavoriteBorder)`
-
 
34
  animation: heartBeatAnimation 0.2s linear;
-
 
35
 
-
 
36
  @keyframes heartBeatAnimation {
-
 
37
    0% {
-
 
38
      transform: scale(1);
-
 
39
    }
-
 
40
    50% {
-
 
41
      transform: scale(1.3);
-
 
42
    }
-
 
43
    100% {
-
 
44
      transform: scale(1);
-
 
45
    }
-
 
46
  }
8
 
47
`
9
import Widget from '@components/UI/Widget'
48
 
10
 
49
export default function JobCard({
11
export default function JobCard({
50
  job: {
12
  job: {
Línea 119... Línea 81...
119
      <Widget.Body>
81
      <Widget.Body>
120
        <Grid container>
82
        <Grid container>
121
          <Grid item xs>
83
          <Grid item xs>
122
            <Typography variant='h2'>{jobTitle}</Typography>
84
            <Typography variant='h2'>{jobTitle}</Typography>
Línea 123... Línea 85...
123
 
85
 
124
            <Typography variant='overline'>
-
 
125
              <LocationOn sx={{ color: '#cd5c5c' }} />
-
 
126
              {location}
-
 
Línea 127... Línea 86...
127
            </Typography>
86
            <Typography variant='overline'>Ubicación: {location}</Typography>
128
 
-
 
129
            <Typography variant='overline'>
-
 
130
              {isJobSaved ? (
-
 
131
                <StyledHeart
-
 
132
                  sx={{ color: 'red' }}
-
 
133
                  onClick={handleClickFollow}
-
 
134
                />
-
 
135
              ) : (
-
 
136
                <StyledHeartOutline
-
 
137
                  sx={{ color: 'red' }}
-
 
138
                  onClick={handleClickFollow}
-
 
139
                />
87
 
140
              )}
88
            <Typography variant='overline'>
Línea 141... Línea 89...
141
              Última aplicación: {lastDateOfApplication}
89
              Última aplicación: {lastDateOfApplication}
142
            </Typography>
90
            </Typography>
143
 
-
 
144
            <Typography>
91
 
Línea 145... Línea -...
145
              Tipo de empleo:
-
 
146
              <Typography component='strong'> {employmentType}</Typography>
-
 
147
            </Typography>
92
            <Typography variant='overline'>
148
 
-
 
Línea 149... Línea 93...
149
            <Typography>
93
              Tipo de empleo: {employmentType}
150
              Categoría:
94
            </Typography>
Línea 151... Línea 95...
151
              <Typography component='strong'> {jobCategory}</Typography>
95
 
152
            </Typography>
96
            <Typography variant='overline'>Categoría: {jobCategory}</Typography>
153
 
97
 
154
            <Typography>{parse(jobDescription)}</Typography>
98
            <Typography>Descripción: {parse(jobDescription)}</Typography>
155
          </Grid>
99
          </Grid>
156
 
100
 
157
          <Grid item xs>
101
          <Grid item xs>
158
            <Typography>Habilidades:</Typography>
102
            <Typography variant='overline'>Habilidades:</Typography>
159
            {jobSkills && !!jobSkills.length && (
103
            {jobSkills && !!jobSkills.length && (
160
              <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>
104
              <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5 }}>
161
                {jobSkills.map((skill) => (
105
                {jobSkills.map((skill) => (
162
                  <Chip key={skill} label={skill} />
106
                  <Chip key={skill} label={skill} />
-
 
107
                ))}
-
 
108
              </Box>
-
 
109
            )}
-
 
110
          </Grid>
-
 
111
        </Grid>
-
 
112
      </Widget.Body>
-
 
113
 
-
 
114
      <Widget.Actions>
-
 
115
        <Button
163
                ))}
116
          variant={isJobSaved ? 'secondary' : 'primary'}
164
              </Box>
117
          onClick={handleClickFollow}
165
            )}
118
        >