diff --git a/apps/next/src/pages/_app.tsx b/apps/next/src/pages/_app.tsx
index ebc0776b34..979d12dbe3 100644
--- a/apps/next/src/pages/_app.tsx
+++ b/apps/next/src/pages/_app.tsx
@@ -40,6 +40,7 @@ import { CreatorChannelsShareScreen } from "app/screens/creator-channles-share";
import { CreatorTokenBuyScreen } from "app/screens/creator-token/buy-creator-token";
import { CreatorTokenInviteSignInScreen } from "app/screens/creator-token/invite-sign-in";
import { CreatorTokensExplanationScreen } from "app/screens/creator-tokens-explanation";
+import { CreatorTokensSelfServeExplainerScreen } from "app/screens/creator-tokens-self-serve-explainer";
import { CreatorTokensShareModalScreen } from "app/screens/creator-tokens-share";
import { EnterInviteCodeModalScreen } from "app/screens/creatro-tokens-enter-invite-modal";
import { DetailsScreen } from "app/screens/details";
@@ -266,6 +267,7 @@ function App({ Component, pageProps, router }: AppProps) {
+
{/* Login should be the last so it renders on top of others if needed */}
diff --git a/packages/app/components/home/claim-button-iconic.tsx b/packages/app/components/claim/claim-button-iconic.tsx
similarity index 98%
rename from packages/app/components/home/claim-button-iconic.tsx
rename to packages/app/components/claim/claim-button-iconic.tsx
index 9a1a5a2b97..e51dd2678e 100644
--- a/packages/app/components/home/claim-button-iconic.tsx
+++ b/packages/app/components/claim/claim-button-iconic.tsx
@@ -2,7 +2,7 @@ import { useCallback } from "react";
import { Platform } from "react-native";
import { useIsDarkMode } from "@showtime-xyz/universal.hooks";
-import { Showtime, Check2 } from "@showtime-xyz/universal.icon";
+import { Saved, Check2 } from "@showtime-xyz/universal.icon";
import { useRouter } from "@showtime-xyz/universal.router";
import { Skeleton } from "@showtime-xyz/universal.skeleton";
import { colors } from "@showtime-xyz/universal.tailwind";
@@ -236,7 +236,7 @@ export function ClaimButtonIconic({
buttonColor={isDark ? "#fff" : colors.gray[900]}
{...rest}
>
-
+
);
}
diff --git a/packages/app/components/creator-token/self-serve-explainer.tsx b/packages/app/components/creator-token/self-serve-explainer.tsx
index 6f27f56f6f..715471fdbc 100644
--- a/packages/app/components/creator-token/self-serve-explainer.tsx
+++ b/packages/app/components/creator-token/self-serve-explainer.tsx
@@ -1,4 +1,5 @@
import { useEffect } from "react";
+import { Platform } from "react-native";
import { Avatar } from "@showtime-xyz/universal.avatar";
import { Button } from "@showtime-xyz/universal.button";
@@ -36,12 +37,13 @@ export const SelfServeExplainer = () => {
creatorTokenDeployStatus.pollDeployStatus();
}, [creatorTokenDeployStatus]);
- console.log("creatorTokenDeployStatus", creatorTokenDeployStatus.status);
-
return (
You're invited to be first.
diff --git a/packages/app/components/home/engagement-icons.tsx b/packages/app/components/home/engagement-icons.tsx
index 2165c38c6e..c94e9d3492 100644
--- a/packages/app/components/home/engagement-icons.tsx
+++ b/packages/app/components/home/engagement-icons.tsx
@@ -6,8 +6,8 @@ import { View } from "@showtime-xyz/universal.view";
import { CreatorEditionResponse } from "app/hooks/use-creator-collection-detail";
import type { NFT } from "app/types";
+import { ClaimButtonIconic } from "../claim/claim-button-iconic";
import { NFTShareDropdown } from "../nft-share-dropdown";
-import { ClaimButtonIconic } from "./claim-button-iconic";
import { FeedCommentButton } from "./feed-comment-button";
export type EngagementIconsProps = {
diff --git a/packages/app/components/home/header.tsx b/packages/app/components/home/header.tsx
index 5a4044496f..a1635a7d41 100644
--- a/packages/app/components/home/header.tsx
+++ b/packages/app/components/home/header.tsx
@@ -35,7 +35,26 @@ const CreatorTokensBanner = () => {
{
- router.push("/creator-token/self-serve-explainer");
+ console.log(123);
+
+ const as = `/creator-token/self-serve-explainer`;
+ router.push(
+ Platform.select({
+ native: as,
+ web: {
+ pathname: router.pathname,
+ query: {
+ ...router.query,
+ creatorTokensSelfServeExplainerModal: true,
+ },
+ } as any,
+ }),
+ Platform.select({
+ native: as,
+ web: router.asPath,
+ }),
+ { shallow: true }
+ );
// router.push("/creator-token/imalan/invite-sign-in");
}}
tw="text-13 ml-2 font-bold text-gray-900 underline"
diff --git a/packages/app/components/profile/profile-tab-bar.tsx b/packages/app/components/profile/profile-tab-bar.tsx
index 139349afd4..869343a09f 100644
--- a/packages/app/components/profile/profile-tab-bar.tsx
+++ b/packages/app/components/profile/profile-tab-bar.tsx
@@ -2,7 +2,7 @@ import { useCallback } from "react";
import { Platform } from "react-native";
import { useIsDarkMode } from "@showtime-xyz/universal.hooks";
-import { SongsTab, SavedTab, TokensTab } from "@showtime-xyz/universal.icon";
+import { Songs, Saved, Tokens } from "@showtime-xyz/universal.icon";
import {
ScollableTabBar,
TabBarSingle,
@@ -24,11 +24,11 @@ export const ProfileTabBar = (props: any) => {
switch (route.key) {
case "song_drops_created":
- return ;
+ return ;
case "song_drops_collected":
- return ;
+ return ;
case "tokens":
- return ;
+ return ;
default:
return null;
}
diff --git a/packages/app/components/profile/profile-top.tsx b/packages/app/components/profile/profile-top.tsx
index f7cc04c1da..1b14b88139 100644
--- a/packages/app/components/profile/profile-top.tsx
+++ b/packages/app/components/profile/profile-top.tsx
@@ -11,9 +11,14 @@ import { Button } from "@showtime-xyz/universal.button";
import { Chip } from "@showtime-xyz/universal.chip";
import { ClampText } from "@showtime-xyz/universal.clamp-text";
import { useIsDarkMode } from "@showtime-xyz/universal.hooks";
-import { InformationCircle, Lock } from "@showtime-xyz/universal.icon";
+import {
+ GiftSolid,
+ InformationCircle,
+ Lock,
+} from "@showtime-xyz/universal.icon";
import { Image } from "@showtime-xyz/universal.image";
import { LightBox } from "@showtime-xyz/universal.light-box";
+import { Pressable } from "@showtime-xyz/universal.pressable";
import { PressableScale } from "@showtime-xyz/universal.pressable-scale";
import { useRouter } from "@showtime-xyz/universal.router";
import { useSafeAreaInsets } from "@showtime-xyz/universal.safe-area";
@@ -34,6 +39,7 @@ import { getProfileImage, getProfileName } from "app/utilities";
import { breakpoints } from "design-system/theme";
+import { ButtonGoldLinearGradient } from "../gold-gradient";
import { CreatorTokensPanel } from "./creator-tokens-panel";
import { ProfileSocial } from "./profile-social";
diff --git a/packages/app/components/profile/profile.web.tsx b/packages/app/components/profile/profile.web.tsx
index bcdc765da0..0358db8252 100644
--- a/packages/app/components/profile/profile.web.tsx
+++ b/packages/app/components/profile/profile.web.tsx
@@ -17,9 +17,12 @@ import type { ParsedUrlQuery } from "querystring";
import { useSharedValue } from "react-native-reanimated";
import { useIsDarkMode } from "@showtime-xyz/universal.hooks";
+import { GiftSolid } from "@showtime-xyz/universal.icon";
import { InfiniteScrollList } from "@showtime-xyz/universal.infinite-scroll-list";
+import { Pressable } from "@showtime-xyz/universal.pressable";
import { useRouter } from "@showtime-xyz/universal.router";
import { Route, TabBarSingle } from "@showtime-xyz/universal.tab-view";
+import { colors } from "@showtime-xyz/universal.tailwind";
import { View } from "@showtime-xyz/universal.view";
import { Card } from "app/components/card";
@@ -47,6 +50,7 @@ import { formatProfileRoutes, getProfileImage } from "app/utilities";
import { Spinner } from "design-system/spinner";
import { EmptyPlaceholder } from "../empty-placeholder";
+import { ButtonGoldLinearGradient } from "../gold-gradient";
import { HeaderLeft } from "../header";
import { HeaderRightSm } from "../header/header-right.sm";
import { CreatorTokensPanel } from "./creator-tokens-panel";
@@ -245,10 +249,27 @@ const Profile = ({ username }: ProfileScreenProps) => {
{isProfileMdScreen ? (
-
+ <>
+
+ {
+ router.push("/profile/invite-creator-token");
+ }}
+ >
+
+
+
+ >
) : null}
@@ -260,6 +281,7 @@ const Profile = ({ username }: ProfileScreenProps) => {
isError={isError}
isSelf={isSelf}
/>
+
{
<>
{isSelf ? (
-
+
+ {
+ router.push("/profile/invite-creator-token");
+ }}
+ >
+
+
+
) : (
diff --git a/packages/app/screens/creator-tokens-self-serve-explainer.tsx b/packages/app/screens/creator-tokens-self-serve-explainer.tsx
index b9ce53143d..2c5e552a4f 100644
--- a/packages/app/screens/creator-tokens-self-serve-explainer.tsx
+++ b/packages/app/screens/creator-tokens-self-serve-explainer.tsx
@@ -1,9 +1,13 @@
+import { Platform } from "react-native";
+
+import { withModalScreen } from "@showtime-xyz/universal.modal-screen";
+
import { SelfServeExplainer } from "app/components/creator-token/self-serve-explainer";
import { withColorScheme } from "app/components/memo-with-theme";
import { useUser } from "app/hooks/use-user";
import { useTrackPageViewed } from "app/lib/analytics";
-export const CreatorTokensSelfServeExplainerScreen = withColorScheme(() => {
+const SelfServeExplainerScreen = withColorScheme(() => {
useTrackPageViewed({ name: "Creator Tokens self serve explainer" });
useUser({
redirectTo: "/login",
@@ -11,3 +15,17 @@ export const CreatorTokensSelfServeExplainerScreen = withColorScheme(() => {
return ;
});
+
+const CreatorTokensSelfServeExplainerModal = withModalScreen(
+ SelfServeExplainerScreen,
+ {
+ title: "",
+ matchingPathname: "/creator-token/self-serve-explainer",
+ matchingQueryParam: "creatorTokensSelfServeExplainerModal",
+ disableBackdropPress: true,
+ }
+);
+export const CreatorTokensSelfServeExplainerScreen =
+ Platform.OS === "web"
+ ? CreatorTokensSelfServeExplainerModal
+ : SelfServeExplainerScreen;
diff --git a/packages/design-system/icon/SavedTab.svg b/packages/design-system/icon/Saved.svg
similarity index 100%
rename from packages/design-system/icon/SavedTab.svg
rename to packages/design-system/icon/Saved.svg
diff --git a/packages/design-system/icon/SavedTab.tsx b/packages/design-system/icon/Saved.tsx
similarity index 100%
rename from packages/design-system/icon/SavedTab.tsx
rename to packages/design-system/icon/Saved.tsx
diff --git a/packages/design-system/icon/SongsTab.svg b/packages/design-system/icon/Songs.svg
similarity index 100%
rename from packages/design-system/icon/SongsTab.svg
rename to packages/design-system/icon/Songs.svg
diff --git a/packages/design-system/icon/SongsTab.tsx b/packages/design-system/icon/Songs.tsx
similarity index 100%
rename from packages/design-system/icon/SongsTab.tsx
rename to packages/design-system/icon/Songs.tsx
diff --git a/packages/design-system/icon/TokensTab.svg b/packages/design-system/icon/Tokens.svg
similarity index 100%
rename from packages/design-system/icon/TokensTab.svg
rename to packages/design-system/icon/Tokens.svg
diff --git a/packages/design-system/icon/TokensTab.tsx b/packages/design-system/icon/Tokens.tsx
similarity index 100%
rename from packages/design-system/icon/TokensTab.tsx
rename to packages/design-system/icon/Tokens.tsx
diff --git a/packages/design-system/icon/icon.stories.tsx b/packages/design-system/icon/icon.stories.tsx
index 85a74f2d36..7cfb75d502 100644
--- a/packages/design-system/icon/icon.stories.tsx
+++ b/packages/design-system/icon/icon.stories.tsx
@@ -200,9 +200,9 @@ export const Default = () => {
-
-
-
+
+
+
diff --git a/packages/design-system/icon/index.ts b/packages/design-system/icon/index.ts
index f2e68f496f..68fee940af 100644
--- a/packages/design-system/icon/index.ts
+++ b/packages/design-system/icon/index.ts
@@ -153,9 +153,9 @@ export { default as Messagev2 } from "./Messagev2";
export { default as MusicBadge } from "./MusicBadge";
export { default as RaffleBadge } from "./RaffleBadge";
export { default as LockBadge } from "./LockBadge";
-export { default as SongsTab } from "./SongsTab";
-export { default as SavedTab } from "./SavedTab";
-export { default as TokensTab } from "./TokensTab";
+export { default as Songs } from "./Songs";
+export { default as Saved } from "./Saved";
+export { default as Tokens } from "./Tokens";
export { default as Photo } from "./Photo";
export { default as Gallery } from "./Gallery";
export { default as GrowthArrow } from "./GrowthArrow";