From c15529dd227a3bafa095fbf8372e5ce375bab9b3 Mon Sep 17 00:00:00 2001 From: BFlat Date: Sat, 24 Feb 2024 12:26:22 +0700 Subject: [PATCH] RON card update --- .../src/components/common/Card/MediaCards.tsx | 3 + .../common/Card/SceneRonCard/SceneRonCard.tsx | 79 +++++++++++++++++++ .../common/Card/SceneRonCard/index.ts | 1 + .../entities/CardWrapper/CardWrapper.scss | 31 ++++++-- .../fakeyou.com/src/utils/mediaTypeLabels.ts | 14 ++++ .../src/v2/view/pages/media/MediaPage.tsx | 5 +- 6 files changed, 125 insertions(+), 8 deletions(-) create mode 100644 packages/fakeyou.com/src/components/common/Card/SceneRonCard/SceneRonCard.tsx create mode 100644 packages/fakeyou.com/src/components/common/Card/SceneRonCard/index.ts create mode 100644 packages/fakeyou.com/src/utils/mediaTypeLabels.ts diff --git a/packages/fakeyou.com/src/components/common/Card/MediaCards.tsx b/packages/fakeyou.com/src/components/common/Card/MediaCards.tsx index 953db60fd0..47c6b4f775 100644 --- a/packages/fakeyou.com/src/components/common/Card/MediaCards.tsx +++ b/packages/fakeyou.com/src/components/common/Card/MediaCards.tsx @@ -6,6 +6,7 @@ import BVHCard from "./BVHCard"; import GLBCard from "./GLBCard"; import GLTFCard from "./GLTFCard"; import FBXCard from "./FBXCard"; +import SceneRonCard from "./SceneRonCard"; interface Props { props: any; @@ -26,6 +27,8 @@ export default function MediaCards({ props, type }: Props) { return ; case "fbx": return ; + case "scene_ron": + return ; case "video": return ; default: diff --git a/packages/fakeyou.com/src/components/common/Card/SceneRonCard/SceneRonCard.tsx b/packages/fakeyou.com/src/components/common/Card/SceneRonCard/SceneRonCard.tsx new file mode 100644 index 0000000000..8d555e674b --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Card/SceneRonCard/SceneRonCard.tsx @@ -0,0 +1,79 @@ +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 { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faCube } from "@fortawesome/pro-solid-svg-icons"; +import getCardUrl from "../getCardUrl"; + +interface SceneRonCardProps { + bookmarks: any; + data: any; + ratings: any; + showCreator?: boolean; + source?: string; + type: "media" | "weights"; +} + +export default function SceneRonCard({ + bookmarks, + data, + showCreator, + source = "", + ratings, + type, +}: SceneRonCardProps) { + const linkUrl = getCardUrl(data, source, type); + + const timeAgo = useTimeAgo(data.created_at); + + return ( + + +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+

{timeAgo}

+
+ +
+
+ + + ); +} diff --git a/packages/fakeyou.com/src/components/common/Card/SceneRonCard/index.ts b/packages/fakeyou.com/src/components/common/Card/SceneRonCard/index.ts new file mode 100644 index 0000000000..5ff1871063 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Card/SceneRonCard/index.ts @@ -0,0 +1 @@ +export { default } from "./SceneRonCard"; diff --git a/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.scss b/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.scss index ffc07a03b0..418ba9f045 100644 --- a/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.scss +++ b/packages/fakeyou.com/src/components/entities/CardWrapper/CardWrapper.scss @@ -8,10 +8,27 @@ // .fy-entity-type-glb { background-color: lime; } // .fy-entity-type-gltf { background-color: lime; } -.fy-entity-type-audio { background-color: map-get($badge-colors,"teal"); } -.fy-entity-type-image { background-color: map-get($badge-colors,"ultramarine"); } -.fy-entity-type-video { background-color: map-get($badge-colors,"purple"); } -.fy-entity-type-bvh { background-color: map-get($badge-colors,"pink"); } -.fy-entity-type-fbx { background-color: map-get($badge-colors,"lime"); } -.fy-entity-type-glb { background-color: map-get($badge-colors,"lime"); } -.fy-entity-type-gltf { background-color: map-get($badge-colors,"lime"); } \ No newline at end of file +.fy-entity-type-audio { + background-color: map-get($badge-colors, "teal"); +} +.fy-entity-type-image { + background-color: map-get($badge-colors, "ultramarine"); +} +.fy-entity-type-video { + background-color: map-get($badge-colors, "purple"); +} +.fy-entity-type-bvh { + background-color: map-get($badge-colors, "pink"); +} +.fy-entity-type-fbx { + background-color: map-get($badge-colors, "lime"); +} +.fy-entity-type-glb { + background-color: map-get($badge-colors, "lime"); +} +.fy-entity-type-gltf { + background-color: map-get($badge-colors, "lime"); +} +.fy-entity-type-scene_ron { + background-color: map-get($badge-colors, "lime"); +} diff --git a/packages/fakeyou.com/src/utils/mediaTypeLabels.ts b/packages/fakeyou.com/src/utils/mediaTypeLabels.ts new file mode 100644 index 0000000000..d86c3d4c1a --- /dev/null +++ b/packages/fakeyou.com/src/utils/mediaTypeLabels.ts @@ -0,0 +1,14 @@ +import { MediaFileType } from "@storyteller/components/src/api/_common/enums/MediaFileType"; + +// THESE SHOULD BECOME A TRANSLATION STRINGS -- REPLACE LATER +export const mediaTypeLabels = { + [MediaFileType.Audio]: "Audio", + [MediaFileType.Video]: "Video", + [MediaFileType.Image]: "Image", + [MediaFileType.BVH]: "BVH", + [MediaFileType.GLB]: "GLB", + [MediaFileType.GLTF]: "glTF", + [MediaFileType.SceneRon]: "RON", + [MediaFileType.FBX]: "FBX", + [MediaFileType.None]: "Unknown", +}; 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 dbfd1c360a..5ae56b06e8 100644 --- a/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/media/MediaPage.tsx @@ -37,6 +37,7 @@ import { WeightCategory } from "@storyteller/components/src/api/_common/enums/We import Iframe from "react-iframe"; import SdBatchMediaPanel from "./components/SdBatchMediaPanel/SdBatchMediaPanel"; import { GetMediaBatchImages } from "@storyteller/components/src/api/media_files/GetMediaBatchImages"; +import { mediaTypeLabels } from "utils/mediaTypeLabels"; export default function MediaPage() { const { canEditTtsModel, user } = useSession(); @@ -264,7 +265,9 @@ export default function MediaPage() { } } - const mediaType = mediaFile?.media_type || ""; // THIS SHOULD BECOME A TRANSLATION STRING, THIS IS NOT DATA -V + const mediaType = mediaFile?.media_type + ? mediaTypeLabels[mediaFile?.media_type] + : ""; let audioLink = new BucketConfig().getGcsUrl(mediaFile?.public_bucket_path);