diff --git a/apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx b/apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx index b7f72c3..f3c838c 100644 --- a/apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx +++ b/apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx @@ -16,10 +16,12 @@ import { useContext, useEffect, useState } from "react"; import { Switch, View } from "react-native"; import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; import { Text } from "@/components/ui/text"; +import { Textarea } from "@/components/ui/textarea"; import { ExternalLink } from "@/components/ExternalLink"; import { StampContext, StampContextValue, StampStep } from "./_layout"; import { Image } from "react-native"; import { Artist } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs"; +import { cn } from "@/lib/utils"; type CardyBResponse = { error: string; @@ -162,6 +164,7 @@ export default function Submit() { const [isSubmitting, setIsSubmitting] = useState(false); const [shareWithBluesky, setShareWithBluesky] = useState(false); + const [blueskyPostText, setBlueskyPostText] = useState(""); const [blueskyEmbedCard, setBlueskyEmbedCard] = useState( null, @@ -170,6 +173,17 @@ export default function Submit() { const selectedTrack = state.step === StampStep.SUBMITTING ? state.submittingStamp : null; + // Effect to initialize blueskyPostText when selectedTrack changes + useEffect(() => { + if (selectedTrack) { + const defaultText = `💮 now playing: +${selectedTrack.title} by ${selectedTrack["artist-credit"]?.map((a) => a.artist.name).join(", ")} + +powered by @teal.fm`; + setBlueskyPostText(defaultText); + } + }, [selectedTrack]); + useEffect(() => { const fetchEmbedData = async (id: string) => { try { @@ -249,10 +263,7 @@ export default function Submit() { if (shareWithBluesky && agent) { // lol this type const rt = new RichText({ - text: `💮 now playing: -${record.trackName} by ${record.artists?.map((a) => a.artistName).join(", ")} - -powered by @teal.fm`, + text: blueskyPostText, }); await rt.detectFacets(agent); let embedInfo = await getEmbedInfo(selectedTrack.id); @@ -330,7 +341,7 @@ powered by @teal.fm`, - + {blueskyEmbedCard && shareWithBluesky ? ( @@ -360,6 +371,28 @@ powered by @teal.fm`, ) )} + {shareWithBluesky && ( + +