diff --git a/app/(tabs)/home.tsx b/app/(tabs)/home.tsx index 92a83de..5742dde 100644 --- a/app/(tabs)/home.tsx +++ b/app/(tabs)/home.tsx @@ -77,7 +77,8 @@ export default function HomeScreen() { /> - + + {/* */} diff --git a/app/_layout.tsx b/app/_layout.tsx index 3f57700..49f385a 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -5,8 +5,11 @@ import { Stack } from 'expo-router'; import * as SplashScreen from 'expo-splash-screen'; import React, { useEffect } from 'react'; import 'react-native-reanimated'; +import AsyncStorage from '@react-native-async-storage/async-storage'; import { initializeLanguage } from '@/i18n'; +import { makeRequest } from '@/utils/makeRequest'; +import { CURRENCY_RATES_ENDPOINT } from '@/utils/api'; export { // Catch any errors thrown by the Layout component. @@ -40,6 +43,10 @@ export default function RootLayout() { }); }, []); + // useEffect(() => { + + // }, []); + useEffect(() => { if (loaded && langLoaded) { SplashScreen.hideAsync(); diff --git a/locales/en.json b/locales/en.json index ea5164f..33a01ed 100644 --- a/locales/en.json +++ b/locales/en.json @@ -10,6 +10,7 @@ "newExperience": "New Experience", "prayerTimes": "Prayer Times", "programs": "Programs", + "Programs": "Schedule", "leftOnPrayer": "Left on {{prayerName}} prayer", "servicesToEnrich": "Services to Enrich Your Spiritual Experience", "quran": "Qur'an", @@ -21,6 +22,15 @@ "translator": "Translator", "adhkar": "Adhkar", "hisnAlMuslim": "Hisn Al-Muslim", + "Makkah": "Makkah", + "Medina": "Medina", + "Jeddah": "Jeddah", + "fajr": "Fajr", + "sunrise": "Sunrise", + "dhuhr": "Dhuhr", + "asr": "Asr", + "maghrib": "Maghrib", + "isha": "Isha", "morningEveningThikr": "Thikr said in the morning and evening", "beforeSleepingThikr": "Thikr before sleeping", "afterSalamThikr": "Thikr after salam", @@ -31,5 +41,13 @@ "sneezingSupplication": "Supplication upon sneezing", "sarToTmt": "SAR to TMT", "hotelBusinessCard": "Hotel Business Card", - "masterkeyBox": "Masterkey Box" + "masterkeyBox": "Masterkey Box", + "Money": "Money", + "Hotel": "Hotel", + "Lost room key": "Lost room key", + "Phrasebook": "Phrasebook", + "Enter text in Turkmen": "Enter text", + "Translate": "Translate", + "Salah": "Salah", + "menuSalah": "Salah" } diff --git a/locales/ru.json b/locales/ru.json index d22ede8..e9ead34 100644 --- a/locales/ru.json +++ b/locales/ru.json @@ -1,6 +1,7 @@ { "home": "Главная", "services": "Сервисы", + "supplications": "Молитвы", "yourJourneyToHajj": "Ваше путешествие в Хадж", "hajjEssentials": "Все, что вам нужно для Хаджа.", "umrah": "Умра", @@ -9,6 +10,7 @@ "newExperience": "Новый опыт", "prayerTimes": "Время молитв", "programs": "Программы", + "Programs": "Расписание", "leftOnPrayer": "Осталось до молитвы {{prayerName}}", "servicesToEnrich": "Услуги для обогащения вашего духовного опыта", "quran": "Коран", @@ -20,6 +22,15 @@ "translator": "Переводчик", "adhkar": "Азкар", "hisnAlMuslim": "Крепость мусульманина", + "Makkah": "Мекка", + "Medina": "Медина", + "Jeddah": "Джидда", + "fajr": "Фаджр", + "sunrise": "Восход", + "dhuhr": "Зухр", + "asr": "Аср", + "maghrib": "Магриб", + "isha": "Иша", "morningEveningThikr": "Зикр, читаемый утром и вечером", "beforeSleepingThikr": "Зикр перед сном", "afterSalamThikr": "Зикр после салама", @@ -30,5 +41,13 @@ "sneezingSupplication": "Мольба при чихании", "sarToTmt": "SAR в TMT", "hotelBusinessCard": "Визитная карточка отеля", - "masterkeyBox": "Ящик для мастер-ключей" + "masterkeyBox": "Ящик для мастер-ключей", + "Money": "Деньги", + "Hotel": "Отель", + "Lost room key": "Ключ от номера утерян", + "Phrasebook": "Разговорник", + "Enter text in Turkmen": "Введите текст", + "Translate": "Перевести", + "Salah": "Намаз", + "menuSalah": "Намаз" } diff --git a/utils/api.ts b/utils/api.ts new file mode 100644 index 0000000..3473194 --- /dev/null +++ b/utils/api.ts @@ -0,0 +1,3 @@ +export const BASE_URL = 'http://127.0.0.1:8000/'; + +export const CURRENCY_RATES_ENDPOINT = 'api/v1/currency-rates'; diff --git a/utils/makeRequest.ts b/utils/makeRequest.ts new file mode 100644 index 0000000..282093b --- /dev/null +++ b/utils/makeRequest.ts @@ -0,0 +1,35 @@ +import { BASE_URL } from './api'; + +export const makeRequest = async ( + endpoint: string, + options?: RequestInit +): Promise => { + const url = new URL(endpoint, BASE_URL).toString(); + + try { + const response = await fetch(url, options); + console.log(response); + + if (!response.ok) { + let errorData; + try { + errorData = await response.json(); + } catch (e) { + // Ignore JSON parsing errors if the body is empty + } + const errorMessage = + errorData?.message || + `Request failed with status ${response.status}`; + throw new Error(errorMessage); + } + + if (response.status === 204) { + return null as T; + } + + return response.json(); + } catch (error) { + console.error('API request error:', error); + throw error; + } +};