|
1 | | -import { wrap } from "@suspensive/react"; |
2 | | -import React from "react"; |
3 | | -import { useNavigate } from "react-router"; |
4 | | -import styled from "styled-components"; |
5 | | - |
6 | | -import { SloganShort } from "assets/icons"; |
7 | | -import { FallbackImg } from "components/common/FallbackImg"; |
8 | | -import Page from "components/common/Page"; |
9 | | -import { APIPretalxSessions } from "models/api/session"; |
10 | | -import { useListSessionsQuery } from "utils/hooks/useAPI"; |
11 | | -import useTranslation from "utils/hooks/useTranslation"; |
| 1 | +import { wrap } from "@suspensive/react" |
| 2 | +import React from "react" |
| 3 | +import { useNavigate } from "react-router" |
| 4 | +import * as R from "remeda" |
| 5 | +import styled from "styled-components" |
| 6 | + |
| 7 | +import { SloganShort } from "assets/icons" |
| 8 | +import { FallbackImg } from "components/common/FallbackImg" |
| 9 | +import Page from "components/common/Page" |
| 10 | +import { APIPretalxSessions } from "models/api/session" |
| 11 | +import { useListSessionsQuery } from "utils/hooks/useAPI" |
| 12 | +import useTranslation from "utils/hooks/useTranslation" |
12 | 13 |
|
13 | 14 | const SessionItem: React.FC<{ session: APIPretalxSessions[0] }> = ({ session }) => { |
14 | 15 | const t = useTranslation(); |
15 | 16 | const navigate = useNavigate(); |
16 | 17 |
|
| 18 | + const speakerImageSrc = R.isArray(session.speakers) && !R.isEmpty(session.speakers) && session.speakers[0].avatar || "" |
| 19 | + |
17 | 20 | return ( |
18 | 21 | <SessionItemEl> |
19 | 22 | <SessionItemImgContainer> |
20 | 23 | <FallbackImg |
21 | | - src={session.image || ""} |
| 24 | + src={speakerImageSrc} |
22 | 25 | alt={session.title} |
23 | 26 | errorFallback={<SloganShort />} |
24 | 27 | /> |
|
0 commit comments