diff --git a/packages/fakeyou.com/public/images/dummy-image-2.jpg b/packages/fakeyou.com/public/images/dummy-image-2.jpg new file mode 100644 index 0000000000..47091841dd Binary files /dev/null and b/packages/fakeyou.com/public/images/dummy-image-2.jpg differ diff --git a/packages/fakeyou.com/public/images/dummy-image-3.jpg b/packages/fakeyou.com/public/images/dummy-image-3.jpg new file mode 100644 index 0000000000..95281df66f Binary files /dev/null and b/packages/fakeyou.com/public/images/dummy-image-3.jpg differ diff --git a/packages/fakeyou.com/public/images/dummy-image-4.jpg b/packages/fakeyou.com/public/images/dummy-image-4.jpg new file mode 100644 index 0000000000..303935dfb3 Binary files /dev/null and b/packages/fakeyou.com/public/images/dummy-image-4.jpg differ diff --git a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx index fa2dcc9553..13e29ecc4a 100644 --- a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx @@ -1,16 +1,30 @@ import React from "react"; +import { useHistory } from "react-router-dom"; import Card from "../Card"; import AudioPlayer from "components/common/AudioPlayer"; interface AudioCardProps { data: any; + to: string; } -export default function AudioCard({ data }: AudioCardProps) { +export default function AudioCard({ data, to }: AudioCardProps) { + const history = useHistory(); + + const handleCardClick = () => { + history.push(to); + }; + + const handleInnerClick = (event: any) => { + event.stopPropagation(); + }; + return ( - -

{data.weight_name}

- + +
{data.weight_name}
+
+ +
); } diff --git a/packages/fakeyou.com/src/components/common/Card/Card.scss b/packages/fakeyou.com/src/components/common/Card/Card.scss index 8591e91c58..5b19c9ddf1 100644 --- a/packages/fakeyou.com/src/components/common/Card/Card.scss +++ b/packages/fakeyou.com/src/components/common/Card/Card.scss @@ -5,4 +5,53 @@ border: 1px solid $panel-inner-border; border-radius: 0.5rem; overflow: hidden; + transition: 0.2s; + position: relative; + + .card-img { + width: 100%; + transition: 0.2s; + object-fit: cover; + object-position: center; + } + + .card-image-overlay { + position: absolute; + bottom: 0; + left: 0; + height: 100%; + width: 100%; + } + + .card-image-gradient { + position: absolute; + bottom: 0; + left: 0; + right: 0; + height: 40%; + background: linear-gradient(180deg, transparent, black); + } + + .card-image-overlay-text { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 1rem; + color: $white; + font-weight: 500; + font-size: 1.2rem; + text-shadow: 0 0 10px black; + } + + &.card-clickable { + &:hover { + background-color: lighten($panel-inner, 3%); + cursor: pointer; + } + + &:hover > .card-img { + transform: scale(1.04); + } + } } diff --git a/packages/fakeyou.com/src/components/common/Card/Card.tsx b/packages/fakeyou.com/src/components/common/Card/Card.tsx index f78e5194d8..fe2a469774 100644 --- a/packages/fakeyou.com/src/components/common/Card/Card.tsx +++ b/packages/fakeyou.com/src/components/common/Card/Card.tsx @@ -4,8 +4,18 @@ import "./Card.scss"; interface CardProps { padding?: boolean; children?: React.ReactNode; + onClick?: () => void; } -export default function Card({ padding, children }: CardProps) { - return
{children}
; +export default function Card({ padding, children, onClick }: CardProps) { + return ( +
+ {children} +
+ ); } diff --git a/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx b/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx index b7640e8186..10435f0f6e 100644 --- a/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx @@ -1,18 +1,34 @@ import React from "react"; +import { useHistory } from "react-router-dom"; import Card from "../Card"; interface ImageCardProps { data: any; + to: string; } -export default function ImageCard({ data }: ImageCardProps) { +export default function ImageCard({ data, to }: ImageCardProps) { + const history = useHistory(); + + const handleCardClick = () => { + history.push(to); + }; + + // const handleInnerClick = (event: any) => { + // event.stopPropagation(); + // }; + return ( - + {data.weight_name} +
+
+
{data.weight_name}
+
); } diff --git a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/MediaTab.tsx b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/MediaTab.tsx index 0c995f43e7..bb57441b1e 100644 --- a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/MediaTab.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/tabs/MediaTab.tsx @@ -4,56 +4,66 @@ import MasonryGrid from "components/common/MasonryGrid/MasonryGrid"; import mockData from "./mockData"; import AudioCard from "components/common/Card/AudioCard"; import ImageCard from "components/common/Card/ImageCard"; -import InfiniteScroll from "react-infinite-scroll-component"; +// import InfiniteScroll from "react-infinite-scroll-component"; import Panel from "components/common/Panel"; +import { Select } from "components/common/Inputs/Inputs"; +import { faFilter } from "@fortawesome/pro-solid-svg-icons"; export default function MediaTab() { - const [data, setData] = useState(mockData); // State to hold your data - const [hasMore, setHasMore] = useState(true); + const [data, setData] = useState(mockData); + // const [hasMore, setHasMore] = useState(true); - const fetchData = () => { - setTimeout(() => { - setData((prevData) => [...prevData, ...mockData]); - setHasMore(false); - }, 1500); - }; + // const fetchData = () => { + // setTimeout(() => { + // setData((prevData) => [...prevData, ...mockData]); + // setHasMore(false); + // }, 1500); + // }; + + const options = [ + { value: "all", label: "All Media" }, + { value: "images", label: "Images" }, + { value: "audio", label: "Audio" }, + { value: "video", label: "Video" }, + ]; return ( - Loading...} - className="overflow-hidden" - > - - {data.map((data, index) => { - let card; - switch (data.media_type) { - case "audio": - card = ; - break; - case "image": - card = ; - break; - case "video": - card = <>test; - break; - default: - card =
Unsupported media type
; - } - return ( -
- {card} -
- ); - })} -
-
+
+