diff --git a/packages/components/src/elements/Gravatar.tsx b/packages/components/src/elements/Gravatar.tsx index 009ddb0c5a..dee4ca46e0 100644 --- a/packages/components/src/elements/Gravatar.tsx +++ b/packages/components/src/elements/Gravatar.tsx @@ -7,6 +7,7 @@ interface Props { username?: string; avatarIndex?: number; backgroundIndex?: number; + noHeight?: boolean; onClick?: () => void; } @@ -30,7 +31,7 @@ function Gravatar(props: Props) { return ( {altText} + <> - + ); } 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 888d49c8df..820cf88997 100644 --- a/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/AudioCard/AudioCard.tsx @@ -3,10 +3,8 @@ import { Link, useHistory } from "react-router-dom"; import Card from "../Card"; import AudioPlayer from "components/common/AudioPlayer"; import useTimeAgo from "hooks/useTimeAgo"; +import { CardFooter } from "components/entities"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; -import BookmarkButton from "components/common/BookmarkButton"; -import CreatorName from "../CreatorName"; import { faArrowRight } from "@fortawesome/pro-solid-svg-icons"; import Button from "components/common/Button"; import useWeightTypeInfo from "hooks/useWeightTypeInfo/useWeightTypeInfo"; @@ -43,10 +41,6 @@ export default function AudioCard({ const linkUrl = getCardUrl(data, source, type); const history = useHistory(); - const handleInnerClick = (event: any) => { - event.stopPropagation(); - }; - const handleSelectModalResultSelect = () => { if (inSelectModal && onResultSelect) { onResultSelect({ @@ -107,44 +101,15 @@ export default function AudioCard({

{timeAgo}

- - -
- -
- {showCreator && ( -
- -
- )} - - {ratings && ( -
- -
- )} -
+ )} @@ -198,60 +163,13 @@ export default function AudioCard({ - -
- -
- {showCreator && ( -
- -
- )} - - {ratings && ( -
- -
- )} - - {bookmarks && ( - - )} -
+ )} diff --git a/packages/fakeyou.com/src/components/common/Card/BVHCard/BVHCard.tsx b/packages/fakeyou.com/src/components/common/Card/BVHCard/BVHCard.tsx index fb9cff2fad..5e6f0a8f02 100644 --- a/packages/fakeyou.com/src/components/common/Card/BVHCard/BVHCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/BVHCard/BVHCard.tsx @@ -3,8 +3,7 @@ import { Link } from "react-router-dom"; import Card from "../Card"; import useTimeAgo from "hooks/useTimeAgo"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; -import CreatorName from "../CreatorName"; +import { CardFooter } from "components/entities"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faPersonWalking } from "@fortawesome/pro-solid-svg-icons"; import getCardUrl from "../getCardUrl"; @@ -29,11 +28,6 @@ export default function BVHCard({ type, }: BVHCardProps) { const linkUrl = getCardUrl(data, source, type); - - const handleInnerClick = (event: any) => { - event.stopPropagation(); - }; - const timeAgo = useTimeAgo(data.created_at); const Wrapper = ({ children }: { children: any }) => inClick ?
{ inClick(data) } }}>{ children }
: { children }; @@ -60,39 +54,13 @@ export default function BVHCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - -
+ diff --git a/packages/fakeyou.com/src/components/common/Card/CreatorName.tsx b/packages/fakeyou.com/src/components/common/Card/CreatorName.tsx index e84f79a7f8..9e43afdfa0 100644 --- a/packages/fakeyou.com/src/components/common/Card/CreatorName.tsx +++ b/packages/fakeyou.com/src/components/common/Card/CreatorName.tsx @@ -9,6 +9,7 @@ interface CreatorNameProps { avatarIndex: number; backgroundIndex: number; className?: string; + noHeight?: boolean; } export default function CreatorName({ @@ -18,13 +19,14 @@ export default function CreatorName({ backgroundIndex, username, className, + noHeight }: CreatorNameProps) { const handleInnerClick = (event: any) => { event.stopPropagation(); }; const gravatar = ( - { - event.stopPropagation(); - }; - const timeAgo = useTimeAgo(data.created_at); return ( @@ -58,42 +53,13 @@ export default function FBXCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - -
- -
-
+ diff --git a/packages/fakeyou.com/src/components/common/Card/GLBCard/GLBCard.tsx b/packages/fakeyou.com/src/components/common/Card/GLBCard/GLBCard.tsx index 12c5eb714d..5f8333fc16 100644 --- a/packages/fakeyou.com/src/components/common/Card/GLBCard/GLBCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/GLBCard/GLBCard.tsx @@ -1,10 +1,9 @@ import React from "react"; import { Link } from "react-router-dom"; import Card from "../Card"; +import { CardFooter } from "components/entities"; import useTimeAgo from "hooks/useTimeAgo"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; -import CreatorName from "../CreatorName"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCube } from "@fortawesome/pro-solid-svg-icons"; import getCardUrl from "../getCardUrl"; @@ -28,10 +27,6 @@ export default function GLBCard({ }: GLBCardProps) { const linkUrl = getCardUrl(data, source, type); - const handleInnerClick = (event: any) => { - event.stopPropagation(); - }; - const timeAgo = useTimeAgo(data.created_at); return ( @@ -58,42 +53,13 @@ export default function GLBCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - -
- -
-
+ diff --git a/packages/fakeyou.com/src/components/common/Card/GLTFCard/GLTFCard.tsx b/packages/fakeyou.com/src/components/common/Card/GLTFCard/GLTFCard.tsx index 183eabc7f6..859c33fa72 100644 --- a/packages/fakeyou.com/src/components/common/Card/GLTFCard/GLTFCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/GLTFCard/GLTFCard.tsx @@ -1,10 +1,9 @@ import React from "react"; import { Link } from "react-router-dom"; import Card from "../Card"; +import { CardFooter } from "components/entities"; import useTimeAgo from "hooks/useTimeAgo"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; -import CreatorName from "../CreatorName"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faCube } from "@fortawesome/pro-solid-svg-icons"; import getCardUrl from "../getCardUrl"; @@ -28,10 +27,6 @@ export default function GLTFCard({ }: GLTFCardProps) { const linkUrl = getCardUrl(data, source, type); - const handleInnerClick = (event: any) => { - event.stopPropagation(); - }; - const timeAgo = useTimeAgo(data.created_at); return ( @@ -58,42 +53,13 @@ export default function GLTFCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - -
- -
-
+ 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 2e42cb8cfb..64c25857c1 100644 --- a/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/ImageCard/ImageCard.tsx @@ -1,11 +1,9 @@ import React from "react"; import { Link, useHistory } from "react-router-dom"; import Card from "../Card"; +import { CardFooter } from "components/entities"; import useTimeAgo from "hooks/useTimeAgo"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; -import BookmarkButton from "components/common/BookmarkButton"; -import CreatorName from "../CreatorName"; import Button from "components/common/Button"; import { faArrowRight } from "@fortawesome/pro-solid-svg-icons"; import useWeightTypeInfo from "hooks/useWeightTypeInfo/useWeightTypeInfo"; @@ -38,11 +36,6 @@ export default function ImageCard({ // const { setToken, setWeightTitle } = useToken(); const linkUrl = getCardUrl(data,source,type); - const handleInnerClick = (event: any) => { - console.log("handleInnderClick") - event.stopPropagation(); - }; - const handleSelectModalResultSelect = () => { console.log("handleSelectModalResultSelect") if (inSelectModal) { @@ -118,44 +111,13 @@ export default function ImageCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - - {ratings && ( -
- -
- )} -
+ @@ -206,63 +168,13 @@ export default function ImageCard({

{timeAgo}

- -
- -
- {showCreator && ( -
- -
- )} - - {ratings && ( -
- -
- )} - - {bookmarks && ( - - )} -
+ diff --git a/packages/fakeyou.com/src/components/common/Card/VideoCard/VideoCard.tsx b/packages/fakeyou.com/src/components/common/Card/VideoCard/VideoCard.tsx index ea1858410a..0d1996ccd8 100644 --- a/packages/fakeyou.com/src/components/common/Card/VideoCard/VideoCard.tsx +++ b/packages/fakeyou.com/src/components/common/Card/VideoCard/VideoCard.tsx @@ -4,14 +4,14 @@ import useTimeAgo from "hooks/useTimeAgo"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faArrowRight, faPlayCircle } from "@fortawesome/pro-solid-svg-icons"; import Badge from "components/common/Badge"; -import LikeButton from "components/common/LikeButton"; import Button from "components/common/Button"; -import CreatorName from "../CreatorName"; +import { CardFooter } from "components/entities"; import { BucketConfig } from "@storyteller/components/src/api/BucketConfig"; import { Link } from "react-router-dom"; import getCardUrl from "../getCardUrl"; interface VideoCardProps { + bookmarks?: any; data: any; ratings?: any; showCreator?: boolean; @@ -22,6 +22,7 @@ interface VideoCardProps { } export default function VideoCard({ + bookmarks, data, ratings, showCreator, @@ -32,10 +33,6 @@ export default function VideoCard({ }: VideoCardProps) { const linkUrl = getCardUrl(data,source,type); - const handleInnerClick = (event: any) => { - event.stopPropagation(); - }; - const handleSelectModalResultSelect = () => { if (inSelectModal && onResultSelect) { onResultSelect(data); @@ -92,42 +89,13 @@ export default function VideoCard({ {data.weight_name}

{timeAgo}

-
-
- {showCreator && ( -
- -
- )} - - {ratings && ( -
- -
- )} -
+ diff --git a/packages/fakeyou.com/src/components/common/LikeButton/LikeButton.tsx b/packages/fakeyou.com/src/components/common/LikeButton/LikeButton.tsx index 4110be8181..1f772bd10c 100644 --- a/packages/fakeyou.com/src/components/common/LikeButton/LikeButton.tsx +++ b/packages/fakeyou.com/src/components/common/LikeButton/LikeButton.tsx @@ -58,7 +58,7 @@ export default function LikeButton({ let likeCountShort = useShortenNumber(likeCount); return ( -
+ <> -
+ ); } diff --git a/packages/fakeyou.com/src/components/entities/CardFooter.tsx b/packages/fakeyou.com/src/components/entities/CardFooter.tsx deleted file mode 100644 index 6de92f8144..0000000000 --- a/packages/fakeyou.com/src/components/entities/CardFooter.tsx +++ /dev/null @@ -1,37 +0,0 @@ -import React from "react"; -import { MakeRatingsProps } from "hooks/useRatings"; -import LikeButton from "components/common/LikeButton"; -import CreatorName from "components/common/Card/CreatorName"; - -interface CardFooterProps { - creator?: any, - entityToken: string, - entityType: string, - makeRatingsProps?: MakeRatingsProps, - showCreator?: boolean -} - -export default function CardFooter({ creator, entityToken, entityType, makeRatingsProps, showCreator }: CardFooterProps) { - const { default_avatar, display_name, gravatar_hash, username } = creator || {}; - return <> - { (showCreator || makeRatingsProps) &&
} -
- { showCreator && ( -
- -
- )} - { - makeRatingsProps ?
- -
: null - } -
- ; -}; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.scss b/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.scss new file mode 100644 index 0000000000..0c980e3e78 --- /dev/null +++ b/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.scss @@ -0,0 +1,10 @@ +.fy-card-footer { + width: 100%; + display: flex; + + .fy-card-footer-toggles { + margin-left: auto; + display: flex; + gap: .5rem; + } +} \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.tsx b/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.tsx new file mode 100644 index 0000000000..c06e3abbf7 --- /dev/null +++ b/packages/fakeyou.com/src/components/entities/CardFooter/CardFooter.tsx @@ -0,0 +1,42 @@ +import React from "react"; +import { MakeBatchProps } from "hooks/useBatchContent"; +import { MakeRatingsProps } from "hooks/useRatings"; +import BookmarkButton from "components/common/BookmarkButton"; +import LikeButton from "components/common/LikeButton"; +import CreatorName from "components/common/Card/CreatorName"; +import "./CardFooter.scss" + +interface CardFooterProps { + creator?: any, + entityToken: string, + entityType: string, + makeBookmarksProps?: MakeBatchProps, + makeRatingsProps?: MakeRatingsProps, // this is MakeBatchProps extended include likeCount + showCreator?: boolean +} + +export default function CardFooter({ creator, entityToken, entityType, makeBookmarksProps, makeRatingsProps, showCreator }: CardFooterProps) { + const { default_avatar, display_name, gravatar_hash, username } = creator || {}; + const togglesOn = makeBookmarksProps || makeRatingsProps; + const eitherOn = showCreator || togglesOn; + return <> + { ( eitherOn ) &&
} +
+ { showCreator && + } + { + togglesOn ?
+ { makeRatingsProps && } + { makeBookmarksProps && } +
: null + } +
+ ; +}; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/CardFooter/index.tsx b/packages/fakeyou.com/src/components/entities/CardFooter/index.tsx new file mode 100644 index 0000000000..4cbbc0a76d --- /dev/null +++ b/packages/fakeyou.com/src/components/entities/CardFooter/index.tsx @@ -0,0 +1 @@ +export { default } from "./CardFooter"; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/entities/index.tsx b/packages/fakeyou.com/src/components/entities/index.tsx index 043d89b296..c93556549c 100644 --- a/packages/fakeyou.com/src/components/entities/index.tsx +++ b/packages/fakeyou.com/src/components/entities/index.tsx @@ -1,8 +1,9 @@ import AudioCard from "./AudioCard"; +import CardFooter from "./CardFooter"; import CardWrapper from "./CardWrapper"; import EntityInput from "./EntityInput"; import MediaList from "./MediaList"; import OverlayCard from "./OverlayCard"; import WeightCard from "./WeightCard"; -export { AudioCard, CardWrapper, EntityInput, MediaList, OverlayCard, WeightCard }; \ No newline at end of file +export { AudioCard, CardFooter, CardWrapper, EntityInput, MediaList, OverlayCard, WeightCard }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/components/providers/AccountModalProvider/index.ts b/packages/fakeyou.com/src/components/providers/AccountModalProvider/index.tsx similarity index 100% rename from packages/fakeyou.com/src/components/providers/AccountModalProvider/index.ts rename to packages/fakeyou.com/src/components/providers/AccountModalProvider/index.tsx diff --git a/packages/fakeyou.com/src/components/providers/InferenceJobs/index.ts b/packages/fakeyou.com/src/components/providers/InferenceJobs/index.tsx similarity index 100% rename from packages/fakeyou.com/src/components/providers/InferenceJobs/index.ts rename to packages/fakeyou.com/src/components/providers/InferenceJobs/index.tsx diff --git a/packages/fakeyou.com/src/components/providers/SessionProvider/index.ts b/packages/fakeyou.com/src/components/providers/SessionProvider/index.tsx similarity index 100% rename from packages/fakeyou.com/src/components/providers/SessionProvider/index.ts rename to packages/fakeyou.com/src/components/providers/SessionProvider/index.tsx diff --git a/packages/fakeyou.com/src/components/providers/index.ts b/packages/fakeyou.com/src/components/providers/index.tsx similarity index 79% rename from packages/fakeyou.com/src/components/providers/index.ts rename to packages/fakeyou.com/src/components/providers/index.tsx index 9005f27cc3..530e095005 100644 --- a/packages/fakeyou.com/src/components/providers/index.ts +++ b/packages/fakeyou.com/src/components/providers/index.tsx @@ -1,6 +1,6 @@ import AccountModalProvider from "./AccountModalProvider"; import InferenceJobs from "./InferenceJobs"; -import ModalProvider from "./ModalProvider"; +import ModalProvider from "./ModalProvider/ModalProvider"; import SessionProvider from "./SessionProvider"; export { AccountModalProvider, InferenceJobs, ModalProvider, SessionProvider }; \ No newline at end of file diff --git a/packages/fakeyou.com/src/hooks/useBatchContent/index.ts b/packages/fakeyou.com/src/hooks/useBatchContent/index.ts index 82d3f4948e..e323b996d4 100644 --- a/packages/fakeyou.com/src/hooks/useBatchContent/index.ts +++ b/packages/fakeyou.com/src/hooks/useBatchContent/index.ts @@ -1,2 +1,2 @@ export { default } from "./useBatchContent"; -export type { BatchInputProps, MakePropsParams } from "./useBatchContent"; \ No newline at end of file +export type { BatchInputProps, MakeBatchProps, MakePropsParams } from "./useBatchContent"; \ No newline at end of file diff --git a/packages/fakeyou.com/src/hooks/useBatchContent/useBatchContent.tsx b/packages/fakeyou.com/src/hooks/useBatchContent/useBatchContent.tsx index 4b57a096c7..3d6e08885b 100644 --- a/packages/fakeyou.com/src/hooks/useBatchContent/useBatchContent.tsx +++ b/packages/fakeyou.com/src/hooks/useBatchContent/useBatchContent.tsx @@ -36,6 +36,8 @@ export interface BatchInputProps { toggle: BatchToggle } +export type MakeBatchProps = (x: MakePropsParams) => BatchInputProps; + export default function useBatchContent({ checker, debug, diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index f0901f76e9..1fb3e8ab99 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -96,8 +96,8 @@ import { VoiceDesignerVoiceEditPage } from "./pages/voice_designer/VoiceDesigner import VoiceDesignerUseVoicePage from "./pages/voice_designer/VoiceDesignerUseVoicePage"; import { PasswordResetEmailPage } from "./pages/password_reset/PasswordResetEmailPage"; import { PasswordResetVerificationPage } from "./pages/password_reset/PasswordResetVerificationPage"; -import EngineCompositor from "./pages/EngineCompositor"; -import InferenceJobsPage from "./pages/inference_jobs_page"; +import EngineCompositor from "./pages/EngineCompositor/EngineCompositor"; +import InferenceJobsPage from "./pages/inference_jobs_page/InferenceJobsPage"; import { NewProfilePage } from "./pages/profile/profile_view/NewProfilePage"; import { ModerationJobControlPage } from "./pages/moderation/job_control/ModerationJobControlPage"; import WeightPage from "./pages/weight/WeightPage"; @@ -109,7 +109,7 @@ import UploadSdWeightPage from "./pages/upload/UploadSdWeightPage"; import { FooterNav } from "./nav/FooterNav"; import FbxToGltfPage from "./pages/fbx_to_gltf/FbxToGltfPage"; import UploadLoraWeightPage from "./pages/upload/UploadLoraWeightPage"; -import VideoWorkflowPage from "./pages/video_workflow"; +import VideoWorkflowPage from "./pages/video_workflow/VideoWorkflow"; import ScrollToTop from "./_common/ScrollToTop"; import TextToImagePage from "./pages/text_to_image/TextToImagePage"; import DomainConfigProvider from "context/DomainConfigContext"; diff --git a/packages/fakeyou.com/src/v2/view/pages/explore/tabs/MediaTab.tsx b/packages/fakeyou.com/src/v2/view/pages/explore/tabs/MediaTab.tsx index de5912e1eb..3623ffad66 100644 --- a/packages/fakeyou.com/src/v2/view/pages/explore/tabs/MediaTab.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/explore/tabs/MediaTab.tsx @@ -43,6 +43,7 @@ export default function MediaTab() { onInputChange: () => setShowMasonryGrid(false), onSuccess: res => { ratings.gather({ res, expand: true, key: "token" }); // expand rather than replace for lazy loading + bookmarks.gather({ res, expand: true, key: "token" }); // expand rather than replace for lazy loading setShowMasonryGrid(true); }, requestList: true, diff --git a/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx b/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx index c04bc9933e..102cb7b2f7 100644 --- a/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx @@ -120,7 +120,7 @@ export default function MediaPage() { return (