Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

Merge branch 'main' into move-to-pg

authored by

natalie and committed by
GitHub
21e0c86f ad735f8d

+15 -1
+2
.github/FUNDING.yml
···
··· 1 + open_collective: teal 2 + github: [espeon, mmattbtw, kjloveless]
+5 -1
apps/amethyst/app/(tabs)/(stamp)/stamp/index.tsx
··· 1 import { Button } from "@/components/ui/button"; 2 import { Icon } from "@/lib/icons/iconWithClassName"; 3 - import { Stack, useRouter } from "expo-router"; 4 import { Check, ChevronDown, ChevronRight } from "lucide-react-native"; 5 6 import React, { useContext, useEffect, useRef, useState } from "react"; ··· 25 import SheetBackdrop, { SheetHandle } from "@/components/ui/sheetBackdrop"; 26 import { StampContext, StampContextValue, StampStep } from "./_layout"; 27 import { ExternalLink } from "@/components/ExternalLink"; 28 import { Input } from "@/components/ui/input"; 29 30 export default function StepOne() { ··· 88 /> 89 {/* Search Form */} 90 <View className="flex gap-2 max-w-2xl w-screen px-4"> 91 <Text className="font-bold text-lg">Search for a track</Text> 92 <Input 93 placeholder="Track name..." ··· 114 }} 115 /> 116 <Input 117 placeholder="Album name..." 118 value={searchFields.release} 119 onChangeText={(text) => ··· 126 }} 127 /> 128 <View className="flex-row gap-2 mt-2"> 129 <Button 130 className="flex-1" 131 onPress={handleSearch}
··· 1 import { Button } from "@/components/ui/button"; 2 import { Icon } from "@/lib/icons/iconWithClassName"; 3 + import { Link, Stack, useRouter } from "expo-router"; 4 import { Check, ChevronDown, ChevronRight } from "lucide-react-native"; 5 6 import React, { useContext, useEffect, useRef, useState } from "react"; ··· 25 import SheetBackdrop, { SheetHandle } from "@/components/ui/sheetBackdrop"; 26 import { StampContext, StampContextValue, StampStep } from "./_layout"; 27 import { ExternalLink } from "@/components/ExternalLink"; 28 + 29 import { Input } from "@/components/ui/input"; 30 31 export default function StepOne() { ··· 89 /> 90 {/* Search Form */} 91 <View className="flex gap-2 max-w-2xl w-screen px-4"> 92 + 93 <Text className="font-bold text-lg">Search for a track</Text> 94 <Input 95 placeholder="Track name..." ··· 116 }} 117 /> 118 <Input 119 + 120 placeholder="Album name..." 121 value={searchFields.release} 122 onChangeText={(text) => ··· 129 }} 130 /> 131 <View className="flex-row gap-2 mt-2"> 132 + 133 <Button 134 className="flex-1" 135 onPress={handleSearch}
+4
apps/amethyst/app/(tabs)/_layout.tsx
··· 1 import React from 'react'; 2 import { 3 FilePen, 4 Home, ··· 53 height: 50, 54 }, 55 tabBarShowLabel: isMobile, 56 tabBarStyle: { 57 //height: 75, 58 display: hideTabBar ? 'none' : 'flex', ··· 99 name="settings/index" 100 options={{ 101 title: 'Settings', 102 tabBarIcon: ({ color }) => ( 103 <TabBarIcon name={Settings} color={color} /> 104 ),
··· 1 + 2 import React from 'react'; 3 + 4 import { 5 FilePen, 6 Home, ··· 55 height: 50, 56 }, 57 tabBarShowLabel: isMobile, 58 + 59 tabBarStyle: { 60 //height: 75, 61 display: hideTabBar ? 'none' : 'flex', ··· 102 name="settings/index" 103 options={{ 104 title: 'Settings', 105 + 106 tabBarIcon: ({ color }) => ( 107 <TabBarIcon name={Settings} color={color} /> 108 ),
+2
apps/amethyst/app/(tabs)/index.tsx
··· 1 import * as React from 'react'; 2 import { ActivityIndicator, ScrollView, View } from 'react-native'; 3 ··· 83 }} 84 /> 85 <ActorView actorDid={agent.did!} pdsAgent={agent} /> 86 </ScrollView> 87 ); 88 }
··· 1 + 2 import * as React from 'react'; 3 import { ActivityIndicator, ScrollView, View } from 'react-native'; 4 ··· 84 }} 85 /> 86 <ActorView actorDid={agent.did!} pdsAgent={agent} /> 87 + 88 </ScrollView> 89 ); 90 }
+2
apps/amethyst/components/play/actorPlaysView.tsx
··· 1 import { useStore } from '@/stores/mainStore'; 2 import { OutputSchema as ActorFeedResponse } from '@teal/lexicons/src/types/fm/teal/alpha/feed/getActorFeed'; 3 import { useEffect, useState } from 'react'; ··· 46 trackTitle={p.trackName} 47 artistName={p.artistNames.join(', ')} 48 releaseMbid={p.releaseMbId} 49 /> 50 ))} 51 </ScrollView>
··· 1 + 2 import { useStore } from '@/stores/mainStore'; 3 import { OutputSchema as ActorFeedResponse } from '@teal/lexicons/src/types/fm/teal/alpha/feed/getActorFeed'; 4 import { useEffect, useState } from 'react'; ··· 47 trackTitle={p.trackName} 48 artistName={p.artistNames.join(', ')} 49 releaseMbid={p.releaseMbId} 50 + 51 /> 52 ))} 53 </ScrollView>