diff --git a/packages/components/src/constants/ThirdPartyLinks.ts b/packages/components/src/constants/ThirdPartyLinks.ts
new file mode 100644
index 0000000000..e25de2e5be
--- /dev/null
+++ b/packages/components/src/constants/ThirdPartyLinks.ts
@@ -0,0 +1,15 @@
+/**
+ * Define links to third party sources here so we can update them in one place.
+ */
+class ThirdPartyLinks {
+ // This should only need to change if our Nitro expires.
+ // Old FakeYou Discord invite link: https://discord.gg/H72KFXm
+ public static readonly FAKEYOU_DISCORD = "https://discord.gg/fakeyou";
+
+ // A link to Twitter that will open a "Follow" prompt
+ public static readonly FAKEYOU_TWITTER_WITH_FOLLOW_INTENT = "https://twitter.com/intent/follow?screen_name=FakeYouApp";
+
+ public static readonly FAKEYOU_PATREON = "https://www.patreon.com/fakeyou";
+}
+
+export { ThirdPartyLinks }
\ No newline at end of file
diff --git a/packages/components/src/elements/DiscordLink.tsx b/packages/components/src/elements/DiscordLink.tsx
index f8eaed3fbb..2c7911cc12 100644
--- a/packages/components/src/elements/DiscordLink.tsx
+++ b/packages/components/src/elements/DiscordLink.tsx
@@ -2,6 +2,7 @@ import React from "react";
import { faDiscord } from "@fortawesome/free-brands-svg-icons";
import { IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { ThirdPartyLinks } from "../constants/ThirdPartyLinks";
interface Props {
text?: string;
@@ -24,7 +25,7 @@ function DiscordLink(props: Props) {
);
return (
diff --git a/packages/components/src/elements/DiscordLink2.tsx b/packages/components/src/elements/DiscordLink2.tsx
index a158611416..a825c0483e 100644
--- a/packages/components/src/elements/DiscordLink2.tsx
+++ b/packages/components/src/elements/DiscordLink2.tsx
@@ -2,6 +2,7 @@ import React from "react";
import { faDiscord } from "@fortawesome/free-brands-svg-icons";
import { IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { ThirdPartyLinks } from "../constants/ThirdPartyLinks";
interface Props {
hideIcon?: boolean;
@@ -35,7 +36,7 @@ function DiscordLink2(props: Props) {
return (
diff --git a/packages/components/src/elements/PatreonLink.tsx b/packages/components/src/elements/PatreonLink.tsx
index a037bdb9b7..4556c03f8a 100644
--- a/packages/components/src/elements/PatreonLink.tsx
+++ b/packages/components/src/elements/PatreonLink.tsx
@@ -2,6 +2,7 @@ import React from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { IconProp } from "@fortawesome/fontawesome-svg-core";
import { faPatreon } from "@fortawesome/free-brands-svg-icons";
+import { ThirdPartyLinks } from "../constants/ThirdPartyLinks";
interface Props {
text?: string;
@@ -24,7 +25,7 @@ function PatreonLink(props: Props) {
);
return (
diff --git a/packages/components/src/elements/TwitterLink.tsx b/packages/components/src/elements/TwitterLink.tsx
index e76de793f7..2e90b857f2 100644
--- a/packages/components/src/elements/TwitterLink.tsx
+++ b/packages/components/src/elements/TwitterLink.tsx
@@ -2,6 +2,7 @@ import React from "react";
import { faTwitter } from "@fortawesome/free-brands-svg-icons";
import { IconProp } from "@fortawesome/fontawesome-svg-core";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { ThirdPartyLinks } from "../constants/ThirdPartyLinks";
interface Props {
hideIcon?: boolean;
@@ -35,7 +36,7 @@ function TwitterLink(props: Props) {
return (
diff --git a/packages/fakeyou/src/v2/view/NewFooterNavFc.tsx b/packages/fakeyou/src/v2/view/NewFooterNavFc.tsx
index 5f90331ce8..d2cebc53a7 100644
--- a/packages/fakeyou/src/v2/view/NewFooterNavFc.tsx
+++ b/packages/fakeyou/src/v2/view/NewFooterNavFc.tsx
@@ -15,6 +15,7 @@ import {
faTwitter,
faFacebook,
} from "@fortawesome/free-brands-svg-icons";
+import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks";
interface Props {
sessionWrapper: SessionWrapper;
@@ -83,7 +84,7 @@ function NewFooterNavFc(props: Props) {
+
+
+
+ Discord Chat
+
+
diff --git a/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx b/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx
index 21eafae204..65da2e2a3a 100644
--- a/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx
+++ b/packages/fakeyou/src/v2/view/about/terms_page/TermsPage.tsx
@@ -1,6 +1,7 @@
import React from "react";
import { motion } from "framer-motion";
import { container, item, panel } from "../../../../data/animation";
+import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks";
interface Props {}
@@ -28,7 +29,7 @@ function TermsPage(props: Props) {
We do not condone the use of FakeYou for any type of deception,
slur, abuse, or mistreatment of any individual or group. Please
report such abuses to our{" "}
-
+
community staff on Discord
. Bad actors will have their access revoked and materials deleted.
diff --git a/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx b/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx
index 3cf640d906..200ad23b8f 100644
--- a/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx
+++ b/packages/fakeyou/src/v2/view/patrons/PatronPage.tsx
@@ -6,6 +6,7 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faPatreon } from "@fortawesome/free-brands-svg-icons";
import { motion } from "framer-motion";
import { container, item, image, panel } from "../../../data/animation";
+import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks";
interface Props {
sessionWrapper: SessionWrapper;
}
@@ -29,7 +30,7 @@ function PatronPage(props: Props) {
Not yet (ask for approval in our
diff --git a/packages/storyteller-home/src/pages/index/IndexPage.tsx b/packages/storyteller-home/src/pages/index/IndexPage.tsx
index 507a403de8..bb4faa2e8e 100644
--- a/packages/storyteller-home/src/pages/index/IndexPage.tsx
+++ b/packages/storyteller-home/src/pages/index/IndexPage.tsx
@@ -27,6 +27,7 @@ import { useEffect } from "react";
import gsap from "gsap";
import SplitType from "split-type";
import Scene from "./Scene";
+import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks"
import { Swiper, SwiperSlide } from "swiper/react";
import "swiper/css";
import "swiper/css/pagination";
@@ -164,7 +165,7 @@ function IndexPage() {
data-scroll-position="top"
>
-
+
@@ -591,7 +592,7 @@ function IndexPage() {