From ee44a8618eb6e239373cc9b48d4d966c4bfe0fd2 Mon Sep 17 00:00:00 2001 From: BFlat Date: Sat, 3 Dec 2022 16:44:23 +0700 Subject: [PATCH] Links update --- .../src/pages/dashboard/DashboardPage.tsx | 42 ++++++++++++++++--- .../tts_configs/TtsConfigsCreateRulePage.tsx | 7 +++- .../tts_configs/TtsConfigsDeleteRulePage.tsx | 7 +++- .../tts_configs/TtsConfigsEditRulePage.tsx | 7 +++- .../tts_configs/TtsConfigsReorderPage.tsx | 7 +++- 5 files changed, 61 insertions(+), 9 deletions(-) diff --git a/packages/storyteller-stream-dashboard/src/pages/dashboard/DashboardPage.tsx b/packages/storyteller-stream-dashboard/src/pages/dashboard/DashboardPage.tsx index f7e44ae77b..17a9b1be6b 100644 --- a/packages/storyteller-stream-dashboard/src/pages/dashboard/DashboardPage.tsx +++ b/packages/storyteller-stream-dashboard/src/pages/dashboard/DashboardPage.tsx @@ -1,4 +1,4 @@ -import React from "react"; +import React, { useCallback, useEffect, useState } from "react"; import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faVideo, faVolumeUp } from "@fortawesome/free-solid-svg-icons"; @@ -9,12 +9,41 @@ import { } from "@fortawesome/free-brands-svg-icons"; import { Link } from "react-router-dom"; import { MustBeLoggedInView } from "../../layout/MustBeLoggedInView"; +import { StorytellerUrlConfig } from "@storyteller/components/src/urls/StorytellerUrlConfig"; +import { + CheckTwitchOauth, + CheckTwitchOauthIsError, + CheckTwitchOauthIsOk, +} from "@storyteller/components/src/api/storyteller/twitch_oauth/CheckTwitchOauth"; interface Props { sessionWrapper: SessionWrapper; } function DashboardPage(props: Props) { + const oauthUrl = new StorytellerUrlConfig().twitchOauthEnrollRedirect(); + + const [oauthTokenFound, setOauthTokenFound] = useState(false); + + const checkTwitchOauth = useCallback(async () => { + const result = await CheckTwitchOauth(); + + if (CheckTwitchOauthIsOk(result)) { + setOauthTokenFound(result.oauth_token_found); + } else if (CheckTwitchOauthIsError(result)) { + } + }, []); + + useEffect(() => { + checkTwitchOauth(); + }, [checkTwitchOauth]); + + let twitchText = "Link Your Twitch"; + + if (oauthTokenFound) { + twitchText = "Re-link Your Twitch"; + } + if (!props.sessionWrapper.isLoggedIn()) { return ( <> @@ -38,14 +67,17 @@ function DashboardPage(props: Props) { icon={faTwitch} className="features-icon purple-glow twitch-color dashboard-icon" /> -

Link Your Twitch

+

{twitchText}

Morbi dapibus commodo porta. Sed faucibus tristique orci in tristique. Praesent quam nunc, fermentum eu feugiat sit.

- + + {twitchText} +
diff --git a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsCreateRulePage.tsx b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsCreateRulePage.tsx index 7c6ac5d4d6..be890893d8 100644 --- a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsCreateRulePage.tsx +++ b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsCreateRulePage.tsx @@ -19,6 +19,7 @@ import { EventResponseComponent } from "./event_response_builder/EventResponseCo import { TwitchEventRuleElement } from "./rule_cards/TwitchEventRuleElement"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft, faSave } from "@fortawesome/free-solid-svg-icons"; +import { MustBeLoggedInView } from "../../layout/MustBeLoggedInView"; interface Props { sessionWrapper: SessionWrapper; @@ -100,7 +101,11 @@ function TtsConfigsCreateRulePage(props: Props) { }; if (!props.sessionWrapper.isLoggedIn()) { - return

Must Log In

; + return ( + <> + + + ); } // NB: This is a hypothetical version of what we'll update to diff --git a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsDeleteRulePage.tsx b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsDeleteRulePage.tsx index ac8e79c552..d9af3f53ae 100644 --- a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsDeleteRulePage.tsx +++ b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsDeleteRulePage.tsx @@ -12,6 +12,7 @@ import { Link, useHistory, useParams } from "react-router-dom"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faAngleLeft, faTrash } from "@fortawesome/free-solid-svg-icons"; import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels"; +import { MustBeLoggedInView } from "../../layout/MustBeLoggedInView"; interface Props { sessionWrapper: SessionWrapper; @@ -57,7 +58,11 @@ function TtsConfigsDeleteRulePage(props: Props) { }; if (!props.sessionWrapper.isLoggedIn()) { - return

Must Log In

; + return ( + <> + + + ); } if (twitchEventRule === undefined) { diff --git a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsEditRulePage.tsx b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsEditRulePage.tsx index 117d2208a5..4f242d73fd 100644 --- a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsEditRulePage.tsx +++ b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsEditRulePage.tsx @@ -19,6 +19,7 @@ import { EventResponse } from "@storyteller/components/src/api/storyteller/twitc import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels"; import { EventResponseComponent } from "./event_response_builder/EventResponseComponent"; import { EventMatchPredicateBuilderComponent } from "./event_match_predicate_builder/EventMatchPredicateBuilderComponent"; +import { MustBeLoggedInView } from "../../layout/MustBeLoggedInView"; interface Props { sessionWrapper: SessionWrapper; @@ -116,7 +117,11 @@ function TtsConfigsEditRulePage(props: Props) { }; if (!props.sessionWrapper.isLoggedIn()) { - return

Must Log In

; + return ( + <> + + + ); } if (twitchEventRule === undefined) { diff --git a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsReorderPage.tsx b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsReorderPage.tsx index 0cd0b49263..766b5f3534 100644 --- a/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsReorderPage.tsx +++ b/packages/storyteller-stream-dashboard/src/pages/tts_configs/TtsConfigsReorderPage.tsx @@ -19,6 +19,7 @@ import { faSave } from "@fortawesome/free-solid-svg-icons"; import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels"; import { useHistory, useParams } from "react-router-dom"; import { ReorderableTwitchEventRuleElement } from "./rule_cards/ReorderableTwitchEventRuleElement"; +import { MustBeLoggedInView } from "../../layout/MustBeLoggedInView"; interface Props { sessionWrapper: SessionWrapper; @@ -133,7 +134,11 @@ function TtsConfigsReorderPage(props: Props) { }; if (!props.sessionWrapper.isLoggedIn()) { - return

Must Log In

; + return ( + <> + + + ); } return (