Merge branch '4-add-ability-to-manipulate-play-queue' of github.com:anultravioletaurora/Jellify into 4-add-ability-to-manipulate-play-queue

This commit is contained in:
Violet Caulfield
2025-02-02 21:36:59 -06:00
20 changed files with 995 additions and 955 deletions

View File

@@ -1,4 +1,4 @@
# Jellify
# Jellify (verb) - to make gelatinous
![Jellify App Icon](assets/icon_60pt_3x.jpg)
A music player for [Jellyfin](https://jellyfin.org/) built with [React Native](https://reactnative.dev/).

View File

@@ -52,8 +52,8 @@ export default function Album({
height={width / 1.1}
/>
<H4>{ album.Name ?? "Untitled Album" }</H4>
<H5>{ album.ProductionYear?.toString() ?? "" }</H5>
<H5>{ album.Name ?? "Untitled Album" }</H5>
<Text>{ album.ProductionYear?.toString() ?? "" }</Text>
</YStack>
)}

View File

@@ -5,7 +5,7 @@ import { getUserLibraryApi } from "@jellyfin/sdk/lib/utils/api";
import { useMutation } from "@tanstack/react-query";
import { isUndefined } from "lodash";
import { useUserData } from "../../../api/queries/favorites";
import { Spinner, useTheme } from "tamagui";
import { getTokens, Spinner } from "tamagui";
import Client from "../../../api/client";
import { usePlayerContext } from "../../..//player/provider";
@@ -27,8 +27,6 @@ export default function FavoriteButton({
const { data, isFetching, isFetched, refetch } = useUserData(item.Id!);
const theme = useTheme();
const useSetFavorite = useMutation({
mutationFn: async (mutation: SetFavoriteMutation) => {
return getUserLibraryApi(Client.api!)
@@ -85,7 +83,7 @@ export default function FavoriteButton({
) : (
<Icon
name={isFavorite ? "heart" : "heart-outline"}
color={theme.telemagenta.val}
color={getTokens().color.telemagenta.val}
onPress={toggleFavorite}
/>

View File

@@ -62,12 +62,13 @@ export function ItemCard(props: CardProps) {
alignItems="center"
width={dimensions.width}
>
<H5
<Text
bold
lineBreakStrategyIOS="standard"
numberOfLines={1}
>
{ props.caption }
</H5>
</Text>
{ props.subCaption && (
<Text

View File

@@ -2,7 +2,7 @@ import { usePlayerContext } from "../../../player/provider";
import { StackParamList } from "../../../components/types";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { Separator, Spacer, useTheme, View, XStack, YStack } from "tamagui";
import { getTokens, Separator, Spacer, View, XStack, YStack } from "tamagui";
import { Text } from "../helpers/text";
import { useSafeAreaFrame } from "react-native-safe-area-context";
import BlurhashedImage from "./blurhashed-image";
@@ -24,8 +24,6 @@ export default function Item({
const { width } = useSafeAreaFrame();
const theme = useTheme();
return (
<View flex={1}>
<Separator />
@@ -106,7 +104,7 @@ export default function Item({
{ item.UserData?.IsFavorite ? (
<Icon
small
color={theme.telemagenta.val}
color={getTokens().color.telemagenta.val}
name="heart"
/>
) : (

View File

@@ -1,6 +1,6 @@
import { usePlayerContext } from "../../../player/provider";
import React from "react";
import { Separator, Spacer, Theme, useTheme, XStack, YStack } from "tamagui";
import { getTokens, Separator, Spacer, Theme, useTheme, XStack, YStack } from "tamagui";
import { Text } from "../helpers/text";
import { RunTimeTicks } from "../helpers/time-codes";
import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models";
@@ -37,13 +37,12 @@ export default function Track({
invertedColors,
} : TrackProps) : React.JSX.Element {
const theme = useTheme();
const { width } = useSafeAreaFrame();
const { nowPlaying, queue, usePlayNewQueue } = usePlayerContext();
const isPlaying = nowPlaying?.item.Id === track.Id;
const theme = useTheme();
return (
<Theme name={invertedColors ? "inverted_purple" : undefined}>
<Separator />
@@ -90,7 +89,7 @@ export default function Track({
/>
) : (
<Text
color={isPlaying ? theme.telemagenta : theme.color}
color={isPlaying ? getTokens().color.telemagenta : theme.color}
>
{ track.IndexNumber?.toString() ?? "" }
</Text>
@@ -100,7 +99,7 @@ export default function Track({
<YStack alignContent="center" justifyContent="flex-start" flex={5}>
<Text
bold
color={isPlaying ? theme.telemagenta : theme.color}
color={isPlaying ? getTokens().color.telemagenta : theme.color}
lineBreakStrategyIOS="standard"
numberOfLines={1}
>
@@ -129,7 +128,7 @@ export default function Track({
minWidth={24}
>
{ track.UserData?.IsFavorite ? (
<Icon small name="heart" color={theme.telemagenta.val} />
<Icon small name="heart" color={getTokens().color.telemagenta.val} />
) : (
<Spacer />
)}

View File

@@ -1,5 +1,5 @@
import { Card, useTheme, View } from "tamagui";
import { H2 } from "./text";
import { Card, getTokens, View } from "tamagui";
import { H2, H4 } from "./text";
import Icon from "./icon";
export default function IconCard({
@@ -14,8 +14,6 @@ export default function IconCard({
caption?: string | undefined,
}) : React.JSX.Element {
const theme = useTheme();
return (
<View
alignItems="center"
@@ -31,12 +29,12 @@ export default function IconCard({
onPress={onPress}
>
<Card.Header>
<Icon color={theme.purpleDark.val} name={name} large />
<Icon color={getTokens().color.purpleDark.val} name={name} large />
</Card.Header>
<Card.Footer padded>
<H2 color={theme.purpleDark.val}>{ caption }</H2>
<H4 color={getTokens().color.purpleDark.val}>{ caption ?? "" }</H4>
</Card.Footer>
<Card.Background backgroundColor={theme.telemagenta.val}>
<Card.Background backgroundColor={getTokens().color.telemagenta}>
</Card.Background>
</Card>

View File

@@ -24,31 +24,58 @@ export function Label(props: LabelProps): React.JSX.Element {
export function H1({ children }: { children: string }): React.JSX.Element {
return (
<TamaguiH1 marginBottom={10}>{ children }</TamaguiH1>
<TamaguiH1
fontWeight={900}
marginBottom={10}
>
{ children }
</TamaguiH1>
)
}
export function H2(props: TamaguiTextProps): React.JSX.Element {
return (
<TamaguiH2 marginVertical={7} {...props}>{ props.children }</TamaguiH2>
<TamaguiH2
fontWeight={900}
marginVertical={7}
{...props}
>
{ props.children }
</TamaguiH2>
)
}
export function H3({ children }: { children: string }): React.JSX.Element {
export function H3(props: TamaguiTextProps): React.JSX.Element {
return (
<TamaguiH3 marginVertical={5}>{ children }</TamaguiH3>
<TamaguiH3
fontWeight={800}
marginVertical={5}
{...props}
>
{ props.children }
</TamaguiH3>
)
}
export function H4({ children }: { children: string }): React.JSX.Element {
export function H4(props: TamaguiTextProps): React.JSX.Element {
return (
<TamaguiH4 marginVertical={3}>{children}</TamaguiH4>
<TamaguiH4
fontWeight={800}
marginVertical={3}
>
{ props.children }
</TamaguiH4>
)
}
export function H5({ children }: { children: string }): React.JSX.Element {
return (
<TamaguiH5 marginVertical={2}>{ children }</TamaguiH5>
<TamaguiH5
fontWeight={800}
marginVertical={2}
>
{ children }
</TamaguiH5>
)
}

View File

@@ -3,7 +3,7 @@ import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { useSafeAreaFrame } from "react-native-safe-area-context";
import { StackParamList } from "../types";
import TrackOptions from "./helpers/TrackOptions";
import { ScrollView, Spacer, useTheme, View, XStack, YStack } from "tamagui";
import { getTokens, ScrollView, Spacer, View, XStack, YStack } from "tamagui";
import BlurhashedImage from "../Global/components/blurhashed-image";
import { Text } from "../Global/helpers/text";
import FavoriteButton from "../Global/components/favorite-button";
@@ -29,7 +29,6 @@ export default function ItemDetail({
]);
const { width } = useSafeAreaFrame();
const theme = useTheme();
switch (item.Type) {
case "Audio": {
@@ -87,7 +86,7 @@ export default function ItemDetail({
<Text
textAlign="center"
fontSize={"$6"}
color={theme.telemagenta}
color={getTokens().color.telemagenta}
onPress={() => {
if (item.ArtistItems) {

View File

@@ -1,5 +1,5 @@
import React, { } from "react";
import { useTheme, View, XStack, YStack } from "tamagui";
import { getTokens, useTheme, View, XStack, YStack } from "tamagui";
import { usePlayerContext } from "../../player/provider";
import { BottomTabNavigationEventMap } from "@react-navigation/bottom-tabs";
import { NavigationHelpers, ParamListBase } from "@react-navigation/native";
@@ -56,7 +56,7 @@ export function Miniplayer({ navigation }: { navigation : NavigationHelpers<Para
</TextTicker>
<TextTicker {...TextTickerConfig}>
<Text color={theme.telemagenta}>{nowPlaying?.artist ?? ""}</Text>
<Text color={getTokens().color.telemagenta}>{nowPlaying?.artist ?? ""}</Text>
</TextTicker>
</YStack>

View File

@@ -5,7 +5,7 @@ import { usePlayerContext } from "../../../player/provider";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import React, { useState, useEffect } from "react";
import { SafeAreaView, useSafeAreaFrame } from "react-native-safe-area-context";
import { YStack, XStack, Spacer, useTheme } from "tamagui";
import { YStack, XStack, Spacer, getTokens } from "tamagui";
import PlayPauseButton from "../helpers/buttons";
import { H5, Text } from "../../../components/Global/helpers/text";
import Icon from "../../../components/Global/helpers/icon";
@@ -35,8 +35,6 @@ export default function PlayerScreen({ navigation }: { navigation: NativeStackNa
const { width } = useSafeAreaFrame();
const theme = useTheme();
// Prevent gesture event to close player if we're seeking
useEffect(() => {
navigation.getParent()!.setOptions({ gestureEnabled: !seeking });
@@ -64,7 +62,7 @@ export default function PlayerScreen({ navigation }: { navigation: NativeStackNa
>
<Text>Playing from</Text>
<TextTicker {...TextTickerConfig}>
<H5>{ queueName ?? "Queue"}</H5>
<Text bold>{ queueName ?? "Queue"}</Text>
</TextTicker>
</YStack>
@@ -96,7 +94,7 @@ export default function PlayerScreen({ navigation }: { navigation: NativeStackNa
<TextTicker {...TextTickerConfig}>
<Text
fontSize={"$6"}
color={theme.telemagenta}
color={getTokens().color.telemagenta}
onPress={() => {
if (nowPlaying!.item.ArtistItems) {
navigation.navigate("Artist", {

View File

@@ -6,6 +6,7 @@ import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { useSafeAreaFrame } from "react-native-safe-area-context";
import DraggableFlatList from "react-native-draggable-flatlist";
import SwipeableItem from "react-native-swipeable-item";
import { trigger } from "react-native-haptic-feedback";
export default function Queue({ navigation }: { navigation: NativeStackNavigationProp<StackParamList>}): React.JSX.Element {
@@ -53,7 +54,10 @@ export default function Queue({ navigation }: { navigation: NativeStackNavigatio
onPress={() => {
useSkip.mutate(index);
}}
onLongPress={drag}
onLongPress={() => {
trigger('impactLight');
drag();
}}
isNested
/>
)

View File

@@ -7,7 +7,7 @@ import Favorites from "./Favorites/component";
import Settings from "./Settings/stack";
import { Discover } from "./Discover/component";
import { Miniplayer } from "./Player/mini-player";
import { Separator, useTheme } from "tamagui";
import { getTokens, Separator } from "tamagui";
import { usePlayerContext } from "../player/provider";
import SearchStack from "./Search/stack";
@@ -15,7 +15,6 @@ const Tab = createBottomTabNavigator();
export function Tabs() : React.JSX.Element {
const theme = useTheme();
const isDarkMode = useColorScheme() === 'dark';
const { showMiniplayer } = usePlayerContext();
@@ -23,8 +22,8 @@ export function Tabs() : React.JSX.Element {
return (
<Tab.Navigator
screenOptions={{
tabBarActiveTintColor: theme.telemagenta.val,
tabBarInactiveTintColor: theme.borderColor.val
tabBarActiveTintColor: getTokens().color.telemagenta.val,
tabBarInactiveTintColor: getTokens().color.amethyst.val
}}
tabBar={(props) => (
<>

View File

@@ -1,3 +1,4 @@
import { fonts } from "@tamagui/config/v4";
import { createFont } from "tamagui";
import { fonts } from "@tamagui/config/v4"
@@ -15,10 +16,10 @@ const aileronFace = {
export const bodyFont = createFont({
family: "Aileron-Bold",
size: fonts.heading.size,
lineHeight: fonts.heading.lineHeight,
weight: fonts.heading.weight,
letterSpacing: fonts.heading.letterSpacing,
size: fonts.body.size,
lineHeight: fonts.body.lineHeight,
weight: fonts.body.weight,
letterSpacing: fonts.body.letterSpacing,
face: aileronFace
})

View File

@@ -9,10 +9,9 @@
/* Begin PBXBuildFile section */
00E356F31AD99517003FC87E /* JellifyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* JellifyTests.m */; };
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
1A54BD4268E3B9223ACD0ACE /* libPods-Jellify-JellifyTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E3FC2EF41A48FB4677060580 /* libPods-Jellify-JellifyTests.a */; };
217EBE16A3E8C5FBF476C905 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = F757EB73303E0AC21EF34F64 /* PrivacyInfo.xcprivacy */; };
445DD5C8B4E05137BA74B472 /* libPods-Jellify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 35BDC69D4A828E041848E705 /* libPods-Jellify.a */; };
81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
A60C9AA87213BE8A7EE6AE6B /* libPods-Jellify.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B1D914BAD4BACAA4285B842 /* libPods-Jellify.a */; };
CF620D0C2CF2BB210045E433 /* Aileron-Italic.otf in Resources */ = {isa = PBXBuildFile; fileRef = CF620CFC2CF2BB1F0045E433 /* Aileron-Italic.otf */; };
CF620D0D2CF2BB210045E433 /* Aileron-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = CF620CFD2CF2BB1F0045E433 /* Aileron-Thin.otf */; };
CF620D0E2CF2BB210045E433 /* Aileron-HeavyItalic.otf in Resources */ = {isa = PBXBuildFile; fileRef = CF620CFE2CF2BB1F0045E433 /* Aileron-HeavyItalic.otf */; };
@@ -59,6 +58,7 @@
CF98CA472D3E99E0003D88B7 /* CarScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF98CA452D3E99DF003D88B7 /* CarScene.swift */; };
CF98CA482D3E99E0003D88B7 /* PhoneScene.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF98CA462D3E99DF003D88B7 /* PhoneScene.swift */; };
CF98CA492D3E99E0003D88B7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF98CA442D3E99DF003D88B7 /* AppDelegate.swift */; };
F6D5705AF0F241CFACB48120 /* libPods-Jellify-JellifyTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F2E0D6CB45A7D6D19B1B471 /* libPods-Jellify-JellifyTests.a */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -79,11 +79,12 @@
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Jellify/Images.xcassets; sourceTree = "<group>"; };
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Jellify/Info.plist; sourceTree = "<group>"; };
13B07FB81A68108700A75B9A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = PrivacyInfo.xcprivacy; path = Jellify/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
35BDC69D4A828E041848E705 /* libPods-Jellify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Jellify.a"; sourceTree = BUILT_PRODUCTS_DIR; };
3B6622EAB81CD73F7F18C4A4 /* Pods-Jellify.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify.debug.xcconfig"; path = "Target Support Files/Pods-Jellify/Pods-Jellify.debug.xcconfig"; sourceTree = "<group>"; };
47F8F23DBB1E6482816F1E11 /* Pods-Jellify-JellifyTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify-JellifyTests.debug.xcconfig"; path = "Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests.debug.xcconfig"; sourceTree = "<group>"; };
61D59F7A2E3DAFA5DF396506 /* Pods-Jellify-JellifyTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify-JellifyTests.release.xcconfig"; path = "Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests.release.xcconfig"; sourceTree = "<group>"; };
1B1D914BAD4BACAA4285B842 /* libPods-Jellify.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Jellify.a"; sourceTree = BUILT_PRODUCTS_DIR; };
1BD286321789880B3BB12D97 /* Pods-Jellify-JellifyTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify-JellifyTests.debug.xcconfig"; path = "Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests.debug.xcconfig"; sourceTree = "<group>"; };
4677ABFB0B4DF49E35B2E856 /* Pods-Jellify.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify.debug.xcconfig"; path = "Target Support Files/Pods-Jellify/Pods-Jellify.debug.xcconfig"; sourceTree = "<group>"; };
81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = Jellify/LaunchScreen.storyboard; sourceTree = "<group>"; };
9F2E0D6CB45A7D6D19B1B471 /* libPods-Jellify-JellifyTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Jellify-JellifyTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
BE67D68B5188F802B7E5EDD9 /* Pods-Jellify.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify.release.xcconfig"; path = "Target Support Files/Pods-Jellify/Pods-Jellify.release.xcconfig"; sourceTree = "<group>"; };
CF620CFC2CF2BB1F0045E433 /* Aileron-Italic.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Aileron-Italic.otf"; path = "../assets/fonts/Aileron-Italic.otf"; sourceTree = "<group>"; };
CF620CFD2CF2BB1F0045E433 /* Aileron-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Aileron-Thin.otf"; path = "../assets/fonts/Aileron-Thin.otf"; sourceTree = "<group>"; };
CF620CFE2CF2BB1F0045E433 /* Aileron-HeavyItalic.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "Aileron-HeavyItalic.otf"; path = "../assets/fonts/Aileron-HeavyItalic.otf"; sourceTree = "<group>"; };
@@ -132,8 +133,7 @@
CF98CA442D3E99DF003D88B7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
CF98CA452D3E99DF003D88B7 /* CarScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarScene.swift; sourceTree = "<group>"; };
CF98CA462D3E99DF003D88B7 /* PhoneScene.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhoneScene.swift; sourceTree = "<group>"; };
D0DF149772F72EE36A16DED9 /* Pods-Jellify.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify.release.xcconfig"; path = "Target Support Files/Pods-Jellify/Pods-Jellify.release.xcconfig"; sourceTree = "<group>"; };
E3FC2EF41A48FB4677060580 /* libPods-Jellify-JellifyTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Jellify-JellifyTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
EA9643C989B96B543B38CB6B /* Pods-Jellify-JellifyTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Jellify-JellifyTests.release.xcconfig"; path = "Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests.release.xcconfig"; sourceTree = "<group>"; };
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
F757EB73303E0AC21EF34F64 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Jellify/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
/* End PBXFileReference section */
@@ -143,7 +143,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
1A54BD4268E3B9223ACD0ACE /* libPods-Jellify-JellifyTests.a in Frameworks */,
F6D5705AF0F241CFACB48120 /* libPods-Jellify-JellifyTests.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -151,7 +151,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
445DD5C8B4E05137BA74B472 /* libPods-Jellify.a in Frameworks */,
A60C9AA87213BE8A7EE6AE6B /* libPods-Jellify.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -197,8 +197,8 @@
isa = PBXGroup;
children = (
ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
35BDC69D4A828E041848E705 /* libPods-Jellify.a */,
E3FC2EF41A48FB4677060580 /* libPods-Jellify-JellifyTests.a */,
1B1D914BAD4BACAA4285B842 /* libPods-Jellify.a */,
9F2E0D6CB45A7D6D19B1B471 /* libPods-Jellify-JellifyTests.a */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -254,10 +254,10 @@
BBD78D7AC51CEA395F1C20DB /* Pods */ = {
isa = PBXGroup;
children = (
3B6622EAB81CD73F7F18C4A4 /* Pods-Jellify.debug.xcconfig */,
D0DF149772F72EE36A16DED9 /* Pods-Jellify.release.xcconfig */,
47F8F23DBB1E6482816F1E11 /* Pods-Jellify-JellifyTests.debug.xcconfig */,
61D59F7A2E3DAFA5DF396506 /* Pods-Jellify-JellifyTests.release.xcconfig */,
4677ABFB0B4DF49E35B2E856 /* Pods-Jellify.debug.xcconfig */,
BE67D68B5188F802B7E5EDD9 /* Pods-Jellify.release.xcconfig */,
1BD286321789880B3BB12D97 /* Pods-Jellify-JellifyTests.debug.xcconfig */,
EA9643C989B96B543B38CB6B /* Pods-Jellify-JellifyTests.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
@@ -311,12 +311,12 @@
isa = PBXNativeTarget;
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "JellifyTests" */;
buildPhases = (
1ECAB9805E862FBBEC2A87E4 /* [CP] Check Pods Manifest.lock */,
DF14AF96ECCF0CD980648469 /* [CP] Check Pods Manifest.lock */,
00E356EA1AD99517003FC87E /* Sources */,
00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */,
6C60F96DEF837320134B37EA /* [CP] Embed Pods Frameworks */,
3FE3CC1F6C902845DB001FF9 /* [CP] Copy Pods Resources */,
E3B92A29A99C56A5F979DEF5 /* [CP] Embed Pods Frameworks */,
9CF6FF99E4F767CF8859AEC1 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -332,13 +332,13 @@
isa = PBXNativeTarget;
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Jellify" */;
buildPhases = (
307C2C88C87D3ECD7996604B /* [CP] Check Pods Manifest.lock */,
7A77CD9289109BCDE601BE24 /* [CP] Check Pods Manifest.lock */,
13B07F871A680F5B00A75B9A /* Sources */,
13B07F8C1A680F5B00A75B9A /* Frameworks */,
13B07F8E1A680F5B00A75B9A /* Resources */,
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
ED95B28BB20B2A35D6318E80 /* [CP] Embed Pods Frameworks */,
6EB5E38F20F67ADA10AC38F1 /* [CP] Copy Pods Resources */,
F1247BE43B252D12F2F1196D /* [CP] Embed Pods Frameworks */,
BF5CE9D95F01EA869FBAF787 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -464,29 +464,7 @@
shellPath = /bin/sh;
shellScript = "set -e\n\nWITH_ENVIRONMENT=\"$REACT_NATIVE_PATH/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"$REACT_NATIVE_PATH/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
};
1ECAB9805E862FBBEC2A87E4 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Jellify-JellifyTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
307C2C88C87D3ECD7996604B /* [CP] Check Pods Manifest.lock */ = {
7A77CD9289109BCDE601BE24 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -508,7 +486,7 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
3FE3CC1F6C902845DB001FF9 /* [CP] Copy Pods Resources */ = {
9CF6FF99E4F767CF8859AEC1 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -525,24 +503,7 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-resources.sh\"\n";
showEnvVarsInLog = 0;
};
6C60F96DEF837320134B37EA /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
6EB5E38F20F67ADA10AC38F1 /* [CP] Copy Pods Resources */ = {
BF5CE9D95F01EA869FBAF787 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -559,7 +520,46 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify/Pods-Jellify-resources.sh\"\n";
showEnvVarsInLog = 0;
};
ED95B28BB20B2A35D6318E80 /* [CP] Embed Pods Frameworks */ = {
DF14AF96ECCF0CD980648469 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-Jellify-JellifyTests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
E3B92A29A99C56A5F979DEF5 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Jellify-JellifyTests/Pods-Jellify-JellifyTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
F1247BE43B252D12F2F1196D /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -611,7 +611,7 @@
/* Begin XCBuildConfiguration section */
00E356F61AD99517003FC87E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 47F8F23DBB1E6482816F1E11 /* Pods-Jellify-JellifyTests.debug.xcconfig */;
baseConfigurationReference = 1BD286321789880B3BB12D97 /* Pods-Jellify-JellifyTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -640,7 +640,7 @@
};
00E356F71AD99517003FC87E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 61D59F7A2E3DAFA5DF396506 /* Pods-Jellify-JellifyTests.release.xcconfig */;
baseConfigurationReference = EA9643C989B96B543B38CB6B /* Pods-Jellify-JellifyTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
COPY_PHASE_STRIP = NO;
@@ -666,7 +666,7 @@
};
13B07F941A680F5B00A75B9A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3B6622EAB81CD73F7F18C4A4 /* Pods-Jellify.debug.xcconfig */;
baseConfigurationReference = 4677ABFB0B4DF49E35B2E856 /* Pods-Jellify.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
@@ -699,7 +699,7 @@
};
13B07F951A680F5B00A75B9A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = D0DF149772F72EE36A16DED9 /* Pods-Jellify.release.xcconfig */;
baseConfigurationReference = BE67D68B5188F802B7E5EDD9 /* Pods-Jellify.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;

View File

@@ -4,9 +4,12 @@ PODS:
- FBLazyVector (0.76.6)
- fmt (9.1.0)
- glog (0.3.5)
- hermes-engine (0.76.6):
- hermes-engine/Pre-built (= 0.76.6)
- hermes-engine/Pre-built (0.76.6)
- hermes-engine (0.75.2):
- hermes-engine/Pre-built (= 0.75.2)
- hermes-engine/Pre-built (0.75.2)
- MMKV (2.0.2):
- MMKVCore (~> 2.0.2)
- MMKVCore (2.0.2)
- RCT-Folly (2024.01.01.00):
- boost
- DoubleConversion
@@ -2119,84 +2122,85 @@ EXTERNAL SOURCES:
:path: "../node_modules/react-native/ReactCommon/yoga"
SPEC CHECKSUMS:
boost: 1dca942403ed9342f98334bf4c3621f011aa7946
DoubleConversion: f16ae600a246532c4020132d54af21d0ddb2a385
FBLazyVector: be509404b5de73a64a74284edcaf73a5d1e128b1
fmt: 10c6e61f4be25dc963c36bd73fc7b1705fe975be
glog: 08b301085f15bcbb6ff8632a8ebaf239aae04e6a
hermes-engine: 1949ca944b195a8bde7cbf6316b9068e19cf53c6
RCT-Folly: 84578c8756030547307e4572ab1947de1685c599
RCTDeprecation: 063fc281b30b7dc944c98fe53a7e266dab1a8706
RCTRequired: 8eda2a5a745f6081157a4f34baac40b65fe02b31
RCTTypeSafety: 0f96bf6c99efc33eb43352212703854933f22930
React: 1d3d5bada479030961d513fb11e42659b30e97ff
React-callinvoker: 682c610b9e9d3b93bd8d0075eacb2e6aa304d3e0
React-Core: 9f33c0fc7776a5796d4dae09c363bd58e6a27efe
React-CoreModules: 91afb654834f0a1f48fb26dd1f4d1a1460c44def
React-cxxreact: c7491114266a70f8215306f1d0c4b54a811e77cf
React-debug: 4ae2e95c2d392cca29939a3a2f2b4320ddff3e59
React-defaultsnativemodule: 43d27f1844b4c18fc03fa4fa35ea2f1c48d64237
React-domnativemodule: bca178dd0ce1532f75be783f6f2923f675a778ae
React-Fabric: d6bc0222335270eb76c28dd5036c03a010c04d51
React-FabricComponents: 05eec9e2cf998be793daaee8fa8a8ea6d1187785
React-FabricImage: 3a12374b0aedda71c7ef6bd64b59479b8bb3fe05
React-featureflags: 5670e0dcdc17ba2515963d117dacc13d5b69c431
React-featureflagsnativemodule: bb13129d1427327b2eb8cc13d3879363a4cd8326
React-graphics: 659968f797257c0071ddff28a2d094c8e5c5899c
React-hermes: 6eb81c6f72c25d9058b6030227d0fcc1f741a807
React-idlecallbacksnativemodule: 551b7a89b46041c746640fe13eacf39c1b169709
React-ImageManager: e3d0270c82bf39432da2aff2fcd60dd16b308689
React-jserrorhandler: f60c9b68b4d4ac1449bddc2553610708e939ddee
React-jsi: 47528a2928f38fe15e3d06a96de886e1a779ffc7
React-jsiexecutor: 88a141c4dc821e1b2aa7ecc7d6af7b186e8455a2
React-jsinspector: c26cf4118ea7c1aae721d2cde5acf3b2cdceb814
React-jsitracing: 810d0465c3455e352a71147c18332b1cba1d1410
React-logger: d42a53754a7252cc7a851315f0da2e46b450ea92
React-Mapbuffer: 89885d1518433a462fe64b68bf5e097997380090
React-microtasksnativemodule: 36341e09dcd1df535503e6ed2ddf88f10da56d52
boost: 4cb898d0bf20404aab1850c656dcea009429d6c1
DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5
FBLazyVector: 38bb611218305c3bc61803e287b8a81c6f63b619
fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120
glog: 69ef571f3de08433d766d614c73a9838a06bf7eb
hermes-engine: 3b6e0717ca847e2fc90a201e59db36caf04dee88
MMKV: 3eacda84cd1c4fc95cf848d3ecb69d85ed56006c
MMKVCore: 508b4d3a8ce031f1b5c8bd235f0517fb3f4c73a9
RCT-Folly: 34124ae2e667a0e5f0ea378db071d27548124321
RCTDeprecation: 34cbf122b623037ea9facad2e92e53434c5c7422
RCTRequired: 24c446d7bcd0f517d516b6265d8df04dc3eb1219
RCTTypeSafety: ef5e91bd791abd3a99b2c75fd565791102a66352
React: 643f06bc294806d2db2526b424fdf759e107f514
React-callinvoker: 34d1fa0c340104f324e2521f546196beb44dfad2
React-Core: 14bffba7f3ab7ff5360636854f76af73d7508f00
React-CoreModules: f7ab1179f615f46a89d81955828f139888c37504
React-cxxreact: 183ff8146b58c9e60bf31857327222f4b233f447
React-debug: 4a91c177b5b2efcc546fb50bc2f676f3f589efab
React-defaultsnativemodule: 767201fdec92b9647e17d82b76fae2bd59cdb777
React-domnativemodule: 4f8e282ba9fa9f537bfa7cb7132268ad116aee4d
React-Fabric: a01235a3e8efca6cad64f2773de30620916b94ed
React-FabricComponents: da662de0c925a714e377078d15799238f02ece3a
React-FabricImage: aadd8130a9563554ff11200593f1fa59ede5c032
React-featureflags: 37a78859ad71db758e2efdcbdb7384afefa8701e
React-featureflagsnativemodule: c184c1e25f0c3b19a9ae2beda2417d26b25b0655
React-graphics: 8629b5a56829ffd732114d531181587c9febc38b
React-hermes: c06b1e3320ba48c19486560f166af256b14f693c
React-idlecallbacksnativemodule: ee7d945ceb2a5b947bbcb447eafdbc9997cf6a0f
React-ImageManager: 8f3f1e37eb40c6d629e7b20d4c099a0f7f8d9c89
React-jserrorhandler: 78a484802060c7ced1c7ac6142adbb34b1aa3070
React-jsi: 03ee4a14742b67b73f4ee60b463541918bca085f
React-jsiexecutor: 1e7469147772b1c3334e697c0b578cc9552eed64
React-jsinspector: 0380a132ccd34611f0b56169af849b19c4a0f12e
React-jsitracing: a9d90572f615d78f661f73ce9b7fb165b12f982b
React-logger: 62e11ad27cfcff0fcbfc5df93094f138ad5dd7fe
React-Mapbuffer: 4a9b9131acbd8326b1f0e768d0ad63d981a4a92f
React-microtasksnativemodule: 8b2d1ac72763e0f7aa2d1dcbe26ea84124948ec8
react-native-background-actions: 48e6bad9e2a47e3b04858634c5a05ea11062f680
react-native-blur: d480b382e8ddb4d0c29cd5c4ebacd9f3eb997cc3
react-native-blurhash: 4b23d5778e7f271bd2a0c5d218a2e63c71d739d4
react-native-blur: 3d5dd1ed2dd810b304ac3bcee9cf7d460757c89b
react-native-blurhash: 45bc4c9186ae96666e15d175aa46864ebe53b687
react-native-carplay: 4b1df5b94ec842bc845c6baaebeb1ef2634bada1
react-native-mmkv: b4af3744580f08e1ffc7761103b408d313b2f772
react-native-safe-area-context: 2985d96d364676d1e2e2d5e77f64860874e31e13
react-native-mmkv: f84bf6f48c906911695f9cd16d39d4fb78fcd5a4
react-native-safe-area-context: 17a482f540310e2209f884fd49472d9e1c0e73d6
react-native-track-player: 6dc2e2633265704b8ab6d8124b80239d4ed1f911
React-nativeconfig: 539ff4de6ce3b694e8e751080568c281c84903ce
React-NativeModulesApple: 702246817c286d057e23fe4b1302019796e62521
React-perflogger: f260e2de95f9dbd002035251559c13bf1f0643d4
React-performancetimeline: 957075cead70fe9536a327eb4f842b3d8982f2ec
React-RCTActionSheet: ed5a845eae98fe455b9a1d71f057d626e2f3f1c5
React-RCTAnimation: a49bd2c28c3f32b1d01ff1163603aee3d420ce42
React-RCTAppDelegate: f7aa2f938a6673cfd2a76e76fea8c4b38a4a5bec
React-RCTBlob: 8ddf30f97222f4d8227f64428349fd8252292cb5
React-RCTFabric: 51fb64f7ca7ca2fa334433ba6d4f12750a481cf1
React-RCTImage: 077a25f3a9a6b79938a01c2cfae05ea5f07fc584
React-RCTLinking: 0c8415c600942454d663c4c4dc0d3b00aa7ba5e5
React-RCTNetwork: 42a3c6fb5318dcc9f8796f43de081799fb905021
React-RCTSettings: 1028522e45192515bd8c5308752d3270ee95fd66
React-RCTText: 29ef786d78f69ec5b571634ef2ddd6ec177c958a
React-RCTVibration: 97859ed50816369f4830f623dfac8dc9877f3c5c
React-rendererconsistency: ccd50d5ee6544b26cd11fff5ad1112c5058a0064
React-rendererdebug: 2092a1207a0023ac30877f4f730b403bfaf5ccbe
React-rncore: bfe554cb773978e8b94898866964c9579cb0c70c
React-RuntimeApple: 80949ebe7e6a94296e0168a940832d2029b66982
React-RuntimeCore: f04b5d1eb0534a4f4f46bc76a938a9360ad91024
React-runtimeexecutor: 26a9d14619ec1359470df391be9abb7c80a21b2b
React-RuntimeHermes: 91c2a67a99f316f11a08d3d9280ab4c9fae59b56
React-runtimescheduler: 76bb85f5ba01e800b4970fbc84eeaf10756c50c4
React-timing: c9c7c0fe2fdfc433ef208889b6191dfb45457d68
React-utils: 1b14c41c3edf4d96db1247a78e0ad96e7ceea011
ReactCodegen: 0a0eef9c8cd84c932ae1868832086c6441811e84
ReactCommon: 3c1c8c6d777103c0e60e37c6c5f08e828e2a77c9
ReactNativeFileAccess: e4a873245e830d7061fd4874c0e786c100d2355f
React-nativeconfig: 57781b79e11d5af7573e6f77cbf1143b71802a6d
React-NativeModulesApple: 77edd58a435c1ba641506ba853bd0d594e1f85de
React-perflogger: 8a360ccf603de6ddbe9ff8f54383146d26e6c936
React-performancetimeline: cb79124751b0ab0f1e5fbd5a4ab6d4cf5f1ef0e9
React-RCTActionSheet: 1c0e26a88eec41215089cf4436e38188cfe9f01a
React-RCTAnimation: 6f9c39d1fa9bb0dc3d906c7054466ceb0e773f39
React-RCTAppDelegate: a745afb151ad8e8afb1b98eb177fd43d9b8cc009
React-RCTBlob: 8135ab1fccd8ab08b0bedbee947eeafe5e3cb3c2
React-RCTFabric: 54ecf6a7bc79bd778a7b52bb6e2ea6e9bcbdf539
React-RCTImage: 57549e2ed9f9937de393bbdbd36f3f1fba72b247
React-RCTLinking: 0cad37249277ff873b6cf0bc699c8d0d9d596347
React-RCTNetwork: 1bf1a288cf83be92d9bae971ef059046e22ff801
React-RCTSettings: 105953080f8c0350d79557c61c6180b5f15c974f
React-RCTText: 6828703d3638ff371ee055618dc540298ed7e7da
React-RCTVibration: 201c9f5e4ce7f2980757f4b49366d641a67ca2aa
React-rendererconsistency: ee0d6f1b4420e1ad5bb01c02170e7ecbd278e307
React-rendererdebug: 01d6526386b22e5cf5c7cbcb3984c2e7f21a624a
React-rncore: 7ffc5be03adbf0a5cbf1b654483f487a899cff08
React-RuntimeApple: 7fffb421ae456d04f776503ec55614d17a19312d
React-RuntimeCore: addfb9c3dc64076a3e9f0935f6aa08679b17beae
React-runtimeexecutor: 5bb52479abf8081086afb0397dc33dc97202a439
React-RuntimeHermes: 7c20e51b6ec8f9be865c2bb547c04e2f18d286cc
React-runtimescheduler: 4b04a007fa1aac3fdbbaa7b166d32b4444bcc296
React-utils: 2e17380f9c456ac8bf2e63586e18b79f27386edc
ReactCodegen: ec0b6ef4308774578943faf102b865b603e3e0f7
ReactCommon: c254c0204d81fb3cd63fefd0df97fb8b3d1f63ab
ReactNativeFileAccess: 921d1223be7b739158410e6bc7199b4a9463a261
RNCMaskedView: 4c5ee1c8667d56077246cc6d1977f77393923560
RNDeviceInfo: 900bd20e1fd3bfd894e7384cc4a83880c0341bd3
RNGestureHandler: fa8c03ca612035ac3e80b9f95c098566928ded5f
RNReactNativeHapticFeedback: 8397b76d1ca8d3336545ce8bc8723e3b6cb551eb
RNReanimated: a2692304a6568bc656c04c8ffea812887d37436e
RNScreens: 74536418fef8086457d39df36a55b36efd5329c9
RNVectorIcons: a24016b773380b1aa37fca501ec6b94a951890a0
SocketRocket: d4aabe649be1e368d1318fdf28a022d714d65748
RNGestureHandler: d21c9c1cc8b1bb19336d2e1bc48e56882bd13bc6
RNReactNativeHapticFeedback: 00ba111b82aa266bb3ee1aa576831c2ea9a9dfad
RNReanimated: 26a5a401a5de1c0cf1a3226873825b00ffa85377
RNScreens: 28fbd73104cc9719371da9d9aaa3c70d876a8c6b
RNVectorIcons: 182892e7d1a2f27b52d3c627eca5d2665a22ee28
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
SwiftAudioEx: f6aa653770f3a0d3851edaf8d834a30aee4a7646
Yoga: be6f55a028e86c83ae066f018e9b5d24ffc45436
ZIPFoundation: b8c29ea7ae353b309bc810586181fd073cb3312c

1498
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "jellify",
"version": "0.2.0",
"version": "0.1.4",
"private": true,
"scripts": {
"init": "npm i && npm run pod-install",
@@ -9,22 +9,21 @@
"lint": "eslint .",
"start": "react-native start",
"test": "jest",
"pod-install": "cd ios && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install",
"pod-reinstall": "cd ios && bundle exec pod deintegrate && bundle install && RCT_NEW_ARCH_ENABLED=1 bundle exec pod install"
"pod:install": "cd ios && RCT_NEW_ARCH_ENABLED=0 pod install",
"pod:clean": "cd ios && pod deintegrate"
},
"dependencies": {
"@jellyfin/sdk": "^0.10.0",
"@react-native-community/blur": "^4.4.1",
"@react-native-community/masked-view": "^0.1.11",
"@react-native-masked-view/masked-view": "^0.3.1",
"@react-navigation/bottom-tabs": "^7.2.0",
"@react-navigation/native": "^7.0.14",
"@react-navigation/native-stack": "^7.2.0",
"@react-navigation/stack": "^7.1.1",
"@tamagui/config": "^1.123.5",
"@tanstack/query-sync-storage-persister": "^5.66.0",
"@tanstack/react-query": "^5.66.0",
"@tanstack/react-query-persist-client": "^5.66.0",
"@react-navigation/bottom-tabs": "^6.6.1",
"@react-navigation/native": "^6.1.18",
"@react-navigation/native-stack": "^6.11.0",
"@react-navigation/stack": "^6.4.1",
"@tanstack/query-sync-storage-persister": "^5.62.0",
"@tanstack/react-query": "^5.52.1",
"@tanstack/react-query-persist-client": "^5.62.0",
"axios": "^1.7.9",
"invert-color": "^2.0.0",
"lodash": "^4.17.21",
@@ -48,7 +47,8 @@
"react-native-url-polyfill": "^2.0.0",
"react-native-uuid": "^2.0.3",
"react-native-vector-icons": "^10.2.0",
"tamagui": "^1.123.5"
"tamagui": "^1.123.8",
"@tamagui/config": "^1.123.8"
},
"devDependencies": {
"@babel/core": "^7.25.2",

6
renovate.json Normal file
View File

@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}

View File

@@ -1,3 +1,5 @@
import { animations, tokens as TamaguiTokens, media, shorthands } from '@tamagui/config/v4'
import { createTamagui, createTokens } from 'tamagui' // or '@tamagui/core'
import { headingFont, bodyFont } from './fonts.config'
import { animations, media, shorthands, tokens as TamaguiTokens } from '@tamagui/config/v4';
import { createTamagui, createTokens } from 'tamagui';