{"version":3,"file":"static/js/main.5e5cc5e4.js","mappings":"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","sources":["constants/appColors.ts","constants/appStyles.ts","components/CategoryDtoItem.tsx","context/app-context.tsx","screens/CategoriesScreen.tsx","components/ItemDtoItem.tsx","screens/FavoritesScreen.tsx","components/GroupDtoItem.tsx","screens/GroupsScreen.tsx","screens/ItemsScreen.tsx","screens/InfoScreen.tsx","App.tsx","webpack/bootstrap","webpack/runtime/chunk loaded","webpack/runtime/compat get default export","webpack/runtime/define property getters","webpack/runtime/global","webpack/runtime/hasOwnProperty shorthand","webpack/runtime/make namespace object","webpack/runtime/publicPath","webpack/runtime/jsonp chunk loading","webpack/startup"],"sourcesContent":["\r\nconst appColors = {\r\n //accent: '#196eed',\r\n accent: 'orange',\r\n textColor: 'black',\r\n focusTabTextColor: 'black',\r\n //notFocusTabTextColor: '#bcbcbc',\r\n notFocusTabTextColor: 'lightgrey',\r\n};\r\n\r\nexport default appColors;\r\n","import { StyleSheet } from \"react-native\";\r\nimport appColors from \"./appColors\";\r\n\r\nconst appStyles = StyleSheet.create({\r\n mainContainer: {\r\n backgroundColor: appColors.accent,\r\n flex: 1,\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n list: {\r\n width: '100%',\r\n },\r\n listContainer: {\r\n flexDirection: \"row\",\r\n alignItems: \"center\",\r\n margin:10,\r\n padding: 10,\r\n //elevation: 2,\r\n shadowColor: appColors.textColor,\r\n shadowOffset: { width: 3, height: 3 },\r\n shadowOpacity: 0.5,\r\n borderBottomWidth: 1,\r\n },\r\n listContainerButtons: {\r\n flex: 1,\r\n },\r\n listImage: {\r\n borderWidth: 2,\r\n borderColor: appColors.textColor,\r\n borderRadius: 50,\r\n height: 100,\r\n width: 100,\r\n },\r\n listName: {\r\n fontSize: 18,\r\n fontWeight: \"bold\",\r\n marginLeft: 8,\r\n },\r\n listDescription: {\r\n fontSize: 14,\r\n marginLeft: 8,\r\n },\r\n listDuration: {\r\n fontSize: 14,\r\n fontWeight: \"bold\",\r\n marginLeft: 8,\r\n },\r\n listButtons: {\r\n padding: 5,\r\n alignSelf: \"flex-end\",\r\n },\r\n noItemsText: {\r\n fontSize: 20,\r\n fontWeight: \"bold\",\r\n color: appColors.textColor,\r\n alignSelf: 'center',\r\n },\r\n});\r\n\r\nexport default appStyles;\r\n","import { Text, View, Image } from \"react-native\";\r\nimport { CategoryDto } from \"../models/CategoryDto\";\r\nimport appStyles from \"../constants/appStyles\";\r\n\r\nexport type Props = {\r\n category: CategoryDto;\r\n};\r\n\r\nconst CategoryDtoItem = ({ category }) => {\r\n return (\r\n \r\n \r\n \r\n {category.name}\r\n {category.description}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CategoryDtoItem;\r\n","import { createContext, useEffect, useState } from \"react\";\r\nimport AsyncStorage from \"@react-native-async-storage/async-storage\";\r\nimport { ActivityIndicator, View } from \"react-native\";\r\n\r\nexport const AppContext = createContext({\r\n errorLoadCategories: false,\r\n loadingCategories: false,\r\n favoritesIds: [],\r\n categories: [],\r\n addFavorite: (id: string) => {},\r\n removeFavorite: (id: string) => {},\r\n});\r\n\r\nconst storageKeyFavoritesIds = \"storageKeyFavoritesIds\";\r\n\r\nfunction AppContextProvider({ children }) {\r\n const [errorLoadCategories, setErrorLoadCategories] = useState(false);\r\n const [loadingCategories, setLoadingCategories] = useState(true);\r\n const [categories, setCategories] = useState([]);\r\n const [favoritesIds, setFavoritesIds] = useState([]);\r\n\r\n useEffect(() => {\r\n async function fetchCategories() {\r\n setLoadingCategories(true);\r\n try {\r\n const response = await fetch(\"https://www.vocivip.it/api\", {\r\n method: \"GET\",\r\n headers: {\r\n Authorization:\r\n \"Basic ZjEzZWM3ODYtNTk5OC00M2EwLTkzN2ItOWE0Mjk1YjVkZGQ2OjQ3MWM1NjQ0LTFiMjAtNDFmNy1iZTk1LWQ4MGUyN2M4YzYwMw==\",\r\n },\r\n });\r\n\r\n if (response.ok) {\r\n const result = await response.json();\r\n setCategories(result);\r\n } else {\r\n throw new Error(\r\n `Network response was not ok (Status code: ${response.status})`\r\n );\r\n }\r\n } catch (error) {\r\n setErrorLoadCategories(true);\r\n setCategories([]);\r\n } finally {\r\n setLoadingCategories(false);\r\n }\r\n }\r\n\r\n fetchCategories();\r\n }, []);\r\n\r\n useEffect(() => {\r\n async function retrieveFavoritesIds() {\r\n try {\r\n const jsonValue = await AsyncStorage.getItem(storageKeyFavoritesIds);\r\n const favoritesIds = jsonValue ? JSON.parse(jsonValue) : [];\r\n setFavoritesIds(favoritesIds);\r\n } catch (e) {\r\n setFavoritesIds([]);\r\n }\r\n }\r\n\r\n retrieveFavoritesIds();\r\n }, []);\r\n\r\n useEffect(() => {\r\n async function storeFavoritesIds() {\r\n try {\r\n const jsonValue = JSON.stringify(favoritesIds);\r\n await AsyncStorage.setItem(storageKeyFavoritesIds, jsonValue);\r\n } catch (e) {\r\n // Handle error if needed\r\n }\r\n }\r\n\r\n storeFavoritesIds();\r\n }, [favoritesIds]);\r\n\r\n const addFavorite = (id: string) =>\r\n setFavoritesIds((currentFavoritesIds) => [...currentFavoritesIds, id]);\r\n\r\n const removeFavorite = (id: string) =>\r\n setFavoritesIds((currentFavoritesIds) =>\r\n currentFavoritesIds.filter((ids) => ids !== id)\r\n );\r\n\r\n const value = {\r\n errorLoadCategories,\r\n loadingCategories,\r\n favoritesIds,\r\n categories,\r\n addFavorite,\r\n removeFavorite,\r\n };\r\n\r\n return {children};\r\n}\r\n\r\nexport default AppContextProvider;\r\n","import { Text, FlatList, TouchableOpacity, View, ActivityIndicator } from \"react-native\";\r\nimport { useNavigation } from \"@react-navigation/native\";\r\n\r\nimport CategoryDtoItem from \"../components/CategoryDtoItem\";\r\nimport { CategoryDto } from \"../models/CategoryDto\";\r\nimport { useContext } from \"react\";\r\nimport { AppContext } from \"../context/app-context\";\r\nimport appColors from \"../constants/appColors\";\r\nimport appStyles from \"../constants/appStyles\";\r\n\r\nconst CategoriesScreen = () => {\r\n const navigation = useNavigation();\r\n const appContext = useContext(AppContext);\r\n\r\n const handleItemPress = (item: CategoryDto) => {\r\n navigation.navigate<{ categoryId: string }>(\"Groups\", {\r\n categoryId: item.id,\r\n });\r\n };\r\n\r\n const categories = appContext.categories;\r\n\r\n if (appContext.loadingCategories) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (appContext.errorLoadCategories) {\r\n return (\r\n \r\n \r\n Errore durante il caricamento dei dati 😭\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n item.id}\r\n renderItem={(itemData) => {\r\n return (\r\n handleItemPress(itemData.item)}>\r\n \r\n \r\n );\r\n }}\r\n >\r\n \r\n );\r\n};\r\n\r\nexport default CategoriesScreen;\r\n","import { useEffect, useState } from \"react\";\r\nimport { Text, View, Image, Alert, ActivityIndicator, Platform } from \"react-native\";\r\nimport { AntDesign } from \"@expo/vector-icons\";\r\nimport { ItemDto } from \"../models/ItemDto\";\r\nimport appStyles from \"../constants/appStyles\";\r\n\r\nimport { Audio } from \"expo-av\";\r\nimport * as Sharing from \"expo-sharing\";\r\nimport * as FileSystem from \"expo-file-system\";\r\nimport appColors from \"../constants/appColors\";\r\n\r\nexport type Props = {\r\n showImage: boolean;\r\n item: ItemDto;\r\n isFavorite: boolean;\r\n addFavorite: (id: string) => {};\r\n removeFavorite: (id: string) => {};\r\n};\r\n\r\nconst ItemDtoItem = ({\r\n showImage,\r\n item,\r\n isFavorite,\r\n addFavorite,\r\n removeFavorite,\r\n}) => {\r\n const [sound, setSound] = useState(null);\r\n const [isPlaying, setIsPlaying] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n return sound\r\n ? () => {\r\n sound.unloadAsync();\r\n }\r\n : undefined;\r\n }, [sound]);\r\n\r\n const UpdateStatus = async (data) => {\r\n try {\r\n setIsPlaying(data.isPlaying);\r\n } catch (error) {}\r\n };\r\n\r\n const handlePlayAudio = async (item: ItemDto) => {\r\n try {\r\n await Audio.setAudioModeAsync({\r\n playsInSilentModeIOS: true,\r\n });\r\n\r\n setIsLoading(true);\r\n const { sound } = await Audio.Sound.createAsync({ uri: item.audioUrl });\r\n setSound(sound);\r\n setIsLoading(false);\r\n\r\n sound.setOnPlaybackStatusUpdate(UpdateStatus);\r\n\r\n setIsPlaying(true);\r\n await sound.playAsync();\r\n } catch (error) {\r\n setIsLoading(false);\r\n setIsPlaying(true);\r\n Alert.alert(\"Errore\", \"Impossibile riprodurre l'audio 😭\");\r\n }\r\n };\r\n\r\n const handleStopAudio = async (item: ItemDto) => {\r\n try {\r\n sound.stopAsync();\r\n setIsPlaying(false);\r\n } catch (error) {\r\n Alert.alert(\"Errore\", \"Impossibile riprodurre l'audio 😭\");\r\n }\r\n };\r\n\r\n const handleShareAudio = async (item: ItemDto) => {\r\n try {\r\n setIsLoading(true);\r\n \r\n if (Platform.OS === \"web\") {\r\n // Web: Use tag to trigger download\r\n const response = await fetch(item.audioUrl);\r\n const blob = await response.blob();\r\n const url = URL.createObjectURL(blob);\r\n \r\n const a = document.createElement(\"a\");\r\n a.href = url;\r\n a.style.display = \"none\";\r\n \r\n a.download = \"VociVip.mp3\";\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n URL.revokeObjectURL(url);\r\n \r\n setIsLoading(false);\r\n } else {\r\n // Mobile (iOS/Android): Use expo-file-system & expo-sharing\r\n const { uri } = await FileSystem.downloadAsync(\r\n item.audioUrl,\r\n `${FileSystem.documentDirectory}VociVip.mp3`\r\n );\r\n \r\n setIsLoading(false);\r\n \r\n await Sharing.shareAsync(uri, {\r\n dialogTitle: `Condividi '${item.name}'`,\r\n mimeType: \"audio/mpeg\",\r\n UTI: \"public.mp3\",\r\n });\r\n }\r\n } catch (error) {\r\n setIsLoading(false);\r\n Alert.alert(\"Errore\", \"Impossibile condividere l'audio 😭\");\r\n }\r\n };\r\n\r\n const handleSetAsFavorite = (setAsFavorite: boolean) => {\r\n if (setAsFavorite) {\r\n addFavorite(item.id);\r\n } else {\r\n removeFavorite(item.id);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {showImage && (\r\n \r\n )}\r\n \r\n {item.name}\r\n {item.description}\r\n {item.duration}\r\n \r\n\r\n \r\n {isLoading && }\r\n\r\n {!isLoading && !isPlaying && (\r\n handlePlayAudio(item)}\r\n />\r\n )}\r\n {!isLoading && isPlaying && (\r\n handleStopAudio(item)}\r\n />\r\n )}\r\n\r\n {!isLoading && isFavorite && (\r\n handleSetAsFavorite(false)}\r\n />\r\n )}\r\n\r\n {!isLoading && !isFavorite && (\r\n handleSetAsFavorite(true)}\r\n />\r\n )}\r\n {!isLoading && (\r\n handleShareAudio(item)}\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ItemDtoItem;\r\n","import { View, Text, FlatList } from \"react-native\";\r\nimport { useContext } from \"react\";\r\nimport { AppContext } from \"../context/app-context\";\r\nimport appStyles from \"../constants/appStyles\";\r\nimport ItemDtoItem from \"../components/ItemDtoItem\";\r\nimport { ItemDto } from \"../models/ItemDto\";\r\n\r\n\r\nconst FavoritesScreen = () => {\r\n const favoriteContext = useContext(AppContext);\r\n\r\n if (favoriteContext.errorLoadCategories) {\r\n return (\r\n \r\n \r\n Errore durante il caricamento dei dati 😭\r\n \r\n \r\n );\r\n }\r\n\r\n if (favoriteContext.favoritesIds.length === 0) {\r\n return (\r\n \r\n \r\n Nessun audio aggiunto ai preferiti 💔\r\n \r\n \r\n );\r\n }\r\n\r\n const favoritesItems = favoriteContext.categories\r\n .flatMap((category) => category.groups.flatMap((group) => group.items))\r\n .filter((item) => favoriteContext.favoritesIds.includes(item.id));\r\n\r\n const isFavorite = (item: ItemDto) =>\r\n favoriteContext.favoritesIds.includes(item.id);\r\n\r\n return (\r\n \r\n item.id}\r\n renderItem={(itemData) => {\r\n return (\r\n \r\n );\r\n }}\r\n >\r\n \r\n );\r\n};\r\n\r\n// const styles = StyleSheet.create({\r\n// mainContainer: {\r\n// flex: 1,\r\n// alignItems: \"center\",\r\n// justifyContent: \"center\",\r\n// },\r\n// });\r\n\r\nexport default FavoritesScreen;\r\n","import { Text, View, Image } from \"react-native\";\r\nimport { GroupDto } from \"../models/GroupDto\";\r\nimport appStyles from \"../constants/appStyles\";\r\n\r\nexport type Props = {\r\n group: GroupDto;\r\n};\r\n\r\nconst GroupDtoItem = ({ group }) => {\r\n return (\r\n \r\n \r\n \r\n {group.name}\r\n {group.description}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupDtoItem;\r\n\r\n","import { View, FlatList, TouchableOpacity } from \"react-native\";\r\nimport { useNavigation, useRoute } from \"@react-navigation/native\";\r\nimport GroupItem from \"../components/GroupDtoItem\";\r\nimport { GroupDto } from \"../models/GroupDto\";\r\nimport { useEffect, useContext } from \"react\";\r\nimport { AppContext } from \"../context/app-context\";\r\nimport appStyles from \"../constants/appStyles\";\r\n\r\nexport type Props = {};\r\n\r\nconst GroupsScreen = ({}) => {\r\n const navigation = useNavigation();\r\n const route = useRoute();\r\n const favoriteContext = useContext(AppContext);\r\n\r\n const category = favoriteContext.categories.find(\r\n (c) => c.id === route.params[\"categoryId\"]\r\n );\r\n\r\n useEffect(() => {\r\n navigation.setOptions({ title: category.name });\r\n }, [category]);\r\n\r\n const handleItemPress = (item: GroupDto) => {\r\n navigation.navigate(\"Items\", {\r\n categoryId: route.params[\"categoryId\"],\r\n groupId: item.id,\r\n });\r\n };\r\n\r\n return (\r\n \r\n item.id}\r\n renderItem={(itemData) => {\r\n return (\r\n handleItemPress(itemData.item)}>\r\n \r\n \r\n );\r\n }}\r\n >\r\n \r\n );\r\n};\r\n\r\n// const styles = StyleSheet.create({\r\n// mainContainer: {\r\n// backgroundColor: appColors.accent,\r\n\r\n// },\r\n// });\r\n\r\nexport default GroupsScreen;\r\n","import { View, FlatList, Button, Alert, Platform } from \"react-native\";\r\nimport { useNavigation, useRoute } from \"@react-navigation/native\";\r\nimport { ItemDto } from \"../models/ItemDto\";\r\nimport ItemDtoItem from \"../components/ItemDtoItem\";\r\nimport { useContext, useEffect } from \"react\";\r\nimport GroupDtoItem from \"../components/GroupDtoItem\";\r\nimport { AppContext } from \"../context/app-context\";\r\nimport appStyles from \"../constants/appStyles\";\r\nimport appColors from \"../constants/appColors\";\r\n\r\nexport type Props = {};\r\n\r\nconst ItemsScreen = ({}) => {\r\n const favoriteContext = useContext(AppContext);\r\n const navigation = useNavigation();\r\n const route = useRoute();\r\n\r\n const group = favoriteContext.categories\r\n .find((c) => c.id === route.params[\"categoryId\"])\r\n .groups.find((g) => g.id === route.params[\"groupId\"]);\r\n\r\n useEffect(() => {\r\n navigation.setOptions({\r\n title: group.name,\r\n headerRight: () => (\r\n