Files
umra-app/utils/prayerTimeCalculator.ts

54 lines
1.3 KiB
TypeScript

import { CalculationMethod, Coordinates, PrayerTimes, Qibla } from 'adhan';
type Prayer = {
[key: string]: string;
};
export const getPrayerTimes = (
city: keyof typeof cities,
date: Date = new Date()
): Prayer => {
const { coords, timezone } = cities[city];
const coordinates = new Coordinates(coords[0], coords[1]);
const params = CalculationMethod.UmmAlQura();
const prayerTimes = new PrayerTimes(coordinates, date, params);
const formatTime = (time: Date) => {
return time.toLocaleTimeString('en-US', {
hour: '2-digit',
minute: '2-digit',
hour12: false,
timeZone: timezone,
});
};
return {
fajr: formatTime(prayerTimes.fajr),
sunrise: formatTime(prayerTimes.sunrise),
dhuhr: formatTime(prayerTimes.dhuhr),
asr: formatTime(prayerTimes.asr),
maghrib: formatTime(prayerTimes.maghrib),
isha: formatTime(prayerTimes.isha),
};
};
export const getQiblaDirection = (latitude: number, longitude: number): number => {
const coordinates = new Coordinates(latitude, longitude);
return Qibla(coordinates);
};
export const cities = {
Makkah: {
coords: [21.4225, 39.8262],
timezone: 'Asia/Riyadh',
},
Medina: {
coords: [24.4667, 39.6],
timezone: 'Asia/Riyadh',
},
Jeddah: {
coords: [21.5433, 39.1728],
timezone: 'Asia/Riyadh',
},
};