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

get amethyst to build

+24 -33
+6 -13
apps/amethyst/app/(tabs)/(stamp)/stamp/submit.tsx
··· 1 - import { useContext, useEffect, useState } from "react"; 2 - import { Image, Switch, View } from "react-native"; 3 - import { Redirect, Stack, useRouter } from "expo-router"; 4 1 import { ExternalLink } from "@/components/ExternalLink"; 5 2 import VerticalPlayView from "@/components/play/verticalPlayView"; 6 3 import { Button } from "@/components/ui/button"; ··· 13 10 ComAtprotoRepoCreateRecord, 14 11 RichText, 15 12 } from "@atproto/api"; 13 + import { Redirect, Stack, useRouter } from "expo-router"; 14 + import { useContext, useEffect, useState } from "react"; 15 + import { Image, Switch, View } from "react-native"; 16 16 17 + import { Textarea } from "@/components/ui/textarea"; 18 + import { cn } from "@/lib/utils"; 19 + import { Artist } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs"; 17 20 import { 18 21 Record as PlayRecord, 19 22 validateRecord, 20 23 } from "@teal/lexicons/src/types/fm/teal/alpha/feed/play"; 21 - import { Redirect, Stack, useRouter } from "expo-router"; 22 - import { useContext, useEffect, useState } from "react"; 23 - import { Switch, View } from "react-native"; 24 - import { MusicBrainzRecording, PlaySubmittedData } from "@/lib/oldStamp"; 25 - import { Text } from "@/components/ui/text"; 26 - import { Textarea } from "@/components/ui/textarea"; 27 - import { ExternalLink } from "@/components/ExternalLink"; 28 24 import { StampContext, StampContextValue, StampStep } from "./_layout"; 29 - import { Image } from "react-native"; 30 - import { Artist } from "@teal/lexicons/src/types/fm/teal/alpha/feed/defs"; 31 - import { cn } from "@/lib/utils"; 32 25 33 26 type CardyBResponse = { 34 27 error: string;
+4 -5
apps/amethyst/app/(tabs)/settings/index.tsx
··· 1 - import React, { useState } from "react"; 2 - import { Text } from "@/components/ui/text"; 3 - import { ScrollView, Switch, View } from "react-native"; 4 - import { Link, Stack } from "expo-router"; 5 1 import { Button } from "@/components/ui/button"; 6 2 import { Text } from "@/components/ui/text"; 7 3 import { useColorScheme } from "@/lib/useColorScheme"; 8 4 import { cn } from "@/lib/utils"; 5 + import { Link, Stack } from "expo-router"; 6 + import React, { useState } from "react"; 7 + import { ScrollView, Switch, View } from "react-native"; 9 8 9 + import { Input } from "@/components/ui/input"; 10 10 import pkg from "@/package.json"; 11 11 import { useStore } from "@/stores/mainStore"; 12 - import { Input } from "@/components/ui/input"; 13 12 14 13 export default function Settings() { 15 14 const { colorScheme, setColorScheme } = useColorScheme();
+2 -1
apps/amethyst/app/+not-found.tsx
··· 1 - import { StyleSheet, View } from "react-native"; 2 1 import { Link, Stack } from "expo-router"; 2 + import { StyleSheet, View } from "react-native"; 3 3 4 + import React from "react"; 4 5 import { Text } from "../components/ui/text"; 5 6 6 7 export default function NotFoundScreen() {
+10 -12
apps/amethyst/app/auth/login.tsx
··· 1 - import { Link, Stack, router } from "expo-router"; 2 - import { AlertCircle, AtSign, Check, ChevronRight } from "lucide-react-native"; 3 - import React, { useState, useEffect, useCallback, useRef } from "react"; // Added useCallback, useRef 4 - import { Platform, TextInput, View } from "react-native"; 5 - import { SafeAreaView } from "react-native-safe-area-context"; 6 - import { Link, router, Stack } from "expo-router"; 7 - import { openAuthSessionAsync } from "expo-web-browser"; 8 1 import { Button } from "@/components/ui/button"; 9 2 import { Input } from "@/components/ui/input"; 10 3 import { Text } from "@/components/ui/text"; 11 4 import { Icon } from "@/lib/icons/iconWithClassName"; 12 5 import { capFirstLetter, cn } from "@/lib/utils"; 13 - 6 + import { Link, router, Stack } from "expo-router"; 14 7 import { openAuthSessionAsync } from "expo-web-browser"; 15 - import { useStore } from "@/stores/mainStore"; 8 + import { AlertCircle, AtSign, Check, ChevronRight } from "lucide-react-native"; 9 + import React, { useCallback, useEffect, useRef, useState } from "react"; // Added useCallback, useRef 10 + import { Platform, TextInput, View } from "react-native"; 11 + import { SafeAreaView } from "react-native-safe-area-context"; 12 + 16 13 import { resolveFromIdentity } from "@/lib/atp/pid"; 14 + import { useStore } from "@/stores/mainStore"; 17 15 16 + import { FontAwesome6, MaterialCommunityIcons } from "@expo/vector-icons"; 18 17 import Animated, { 18 + interpolate, 19 + useAnimatedStyle, 19 20 useSharedValue, 20 - useAnimatedStyle, 21 21 withTiming, 22 - interpolate, 23 22 } from "react-native-reanimated"; 24 - import { MaterialCommunityIcons, FontAwesome6 } from "@expo/vector-icons"; 25 23 26 24 type Url = URL; 27 25
+1 -1
apps/amethyst/package.json
··· 17 17 }, 18 18 "dependencies": { 19 19 "@aquareum/atproto-oauth-client-react-native": "^0.0.1", 20 - "@atproto/api": "^0.15.6", 20 + "@atproto/api": "^0.15.14", 21 21 "@atproto/lex-cli": "^0.8.1", 22 22 "@atproto/oauth-client": "^0.3.16", 23 23 "@babel/plugin-transform-export-namespace-from": "^7.27.1",
+1 -1
pnpm-lock.yaml
··· 40 40 specifier: ^0.0.1 41 41 version: 0.0.1(expo@53.0.11(@babel/core@7.26.0)(@expo/metro-runtime@5.0.4(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0)))(babel-plugin-react-compiler@19.0.0-beta-37ed2a7-20241206)(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0))(react-native@0.79.2(@babel/core@7.26.0)(@types/react@19.0.14)(react@19.0.0))(react@19.0.0) 42 42 '@atproto/api': 43 - specifier: ^0.15.6 43 + specifier: ^0.15.14 44 44 version: 0.15.14 45 45 '@atproto/lex-cli': 46 46 specifier: ^0.8.1