diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss
index 32a1841255..b75131bd7c 100644
--- a/packages/fakeyou.com/src/scss/site-refresh.scss
+++ b/packages/fakeyou.com/src/scss/site-refresh.scss
@@ -1017,6 +1017,14 @@ styles with important tags:
font-size: 13px;
padding: 0;
}
+
+ .profile-model-title {
+ color: $white !important;
+
+ &:hover {
+ color: $primary !important;
+ }
+ }
}
select {
diff --git a/packages/fakeyou.com/src/v2/view/_common/ProfileTtsAudioPlayer.tsx b/packages/fakeyou.com/src/v2/view/_common/ProfileTtsAudioPlayer.tsx
new file mode 100644
index 0000000000..19c226575e
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/_common/ProfileTtsAudioPlayer.tsx
@@ -0,0 +1,70 @@
+import React, { useState, useCallback } from "react";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { faPause, faPlay } from "@fortawesome/free-solid-svg-icons";
+import Wavesurfer from "react-wavesurfer.js";
+
+interface Props {
+ filename: string;
+}
+
+function ProfileTtsAudioPlayer(props: Props) {
+ const [isPlaying, setIsPlaying] = useState(false);
+ const [position, setPosition] = useState(0);
+
+ const handleTogglePlay = useCallback(() => {
+ if (!isPlaying) {
+ setIsPlaying(true);
+ } else {
+ setIsPlaying(false);
+ }
+ }, [isPlaying]);
+
+ const handleFinish = useCallback(() => {
+ setIsPlaying(false);
+ setPosition(0);
+ return [setIsPlaying, setPosition];
+ }, []);
+
+ let playButtonText = ;
+
+ if (isPlaying) {
+ playButtonText = (
+ <>
+
+ >
+ );
+ }
+
+ return (
+
+
handleTogglePlay()}
+ type="button"
+ >
+ {playButtonText}
+
+
+
+
+
+ );
+}
+
+export { ProfileTtsAudioPlayer };
diff --git a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/ProfilePage.tsx b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/ProfilePage.tsx
index 0f4183a6bb..1b2b60057d 100644
--- a/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/ProfilePage.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/profile/profile_view/ProfilePage.tsx
@@ -473,7 +473,7 @@ function ProfilePage(props: Props) {
-
{
const duration_seconds = result.duration_millis / 1000;
-
+ const audioLink = new BucketConfig().getGcsUrl(
+ result.public_bucket_wav_audio_path
+ );
+ const wavesurfer =
;
const inferenceLink = `/tts/result/${result.tts_result_token}`;
const modelLink = `/tts/${result.tts_model_token}`;
- const text =
- result.raw_inference_text.length < 5
- ? `Result: ${result.raw_inference_text}`
- : result.raw_inference_text;
+ const text = (
+
+ );
const createTime = new Date(result.created_at);
const relativeCreateTime = formatDistance(createTime, now, {
@@ -129,20 +135,40 @@ function ProfileTtsInferenceResultsListFc(props: Props) {
rows.push(
- {result.maybe_creator_result_id}
- {visibilityIcon}
-
-
-
- {text}
-
-
-
-
- Model: {result.tts_model_title}
-
- {duration_seconds} s
- {relativeCreateTime}
+
+
+
+
+
+
+ {result.tts_model_title}
+
+
+ —
+
+ View Details / Download
+
+
+
+
{text}
+
+
+ {wavesurfer}
+
+
+ #{result.maybe_creator_result_id}
+ ·
+ {visibilityIcon}
+ ·
+ {duration_seconds} s·
+ {relativeCreateTime}
+
+
+
+
);
});
@@ -157,43 +183,13 @@ function ProfileTtsInferenceResultsListFc(props: Props) {
-
-
-
- #
-
-
-
-
-
-
-
- Download & Play Link
-
-
- Model
-
-
- Duration
-
-
- Creation Time
-
-
-
- {rows}
+ {rows}
-
- Note: Results marked public ( ) are
- visible by anyone visiting your profile.
- {/*You can change this by editing results. You can also set a default preference for new results.*/}
-
-
-
+
getPage(previousCursor, true)}
diff --git a/packages/fakeyou.com/src/v2/view/pages/tts/tts_result_view/TtsResultViewPage.tsx b/packages/fakeyou.com/src/v2/view/pages/tts/tts_result_view/TtsResultViewPage.tsx
index 8c1428396d..f639cf9f37 100644
--- a/packages/fakeyou.com/src/v2/view/pages/tts/tts_result_view/TtsResultViewPage.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/tts/tts_result_view/TtsResultViewPage.tsx
@@ -433,7 +433,7 @@ function TtsResultViewPage(props: Props) {
-
+
{headingTitle}
{/* Rate Result Buttons */}
@@ -477,10 +477,10 @@ function TtsResultViewPage(props: Props) {
*/}
-
+