mirror of
https://github.com/KoalaSat/nostros.git
synced 2024-09-28 14:20:43 +00:00
replace moment with date-fns. make date be relative words
This commit is contained in:
parent
6dc7e815b9
commit
64786e5106
9
App.tsx
9
App.tsx
@ -3,18 +3,11 @@ import { Buffer as SafeBuffer } from 'safe-buffer'
|
||||
import { randomBytes } from '@noble/hashes/utils'
|
||||
import 'text-encoding-polyfill'
|
||||
import 'react-native-gesture-handler'
|
||||
import { LogBox, NativeModules } from 'react-native'
|
||||
import moment from 'moment'
|
||||
import 'moment/src/locale/en-gb'
|
||||
import 'moment/src/locale/es'
|
||||
import 'moment/src/locale/ru'
|
||||
import { LogBox } from 'react-native'
|
||||
|
||||
global.Buffer = SafeBuffer
|
||||
global.randomBytes = randomBytes
|
||||
|
||||
const deviceLocale = NativeModules.I18nManager.localeIdentifier?.split('_')[0] ?? 'en'
|
||||
moment.locale([deviceLocale])
|
||||
|
||||
LogBox.ignoreAllLogs()
|
||||
|
||||
export default App
|
||||
|
@ -12,7 +12,7 @@ import { AppContext } from '../../Contexts/AppContext'
|
||||
import { t } from 'i18next'
|
||||
import { isContentWarning } from '../../Functions/RelayFunctions/Events'
|
||||
import { Event } from '../../../lib/nostr/Events'
|
||||
import moment from 'moment'
|
||||
import { getUnixTime } from 'date-fns'
|
||||
import { populateRelay } from '../../Functions/RelayFunctions'
|
||||
import { searchRelays } from '../../Functions/DatabaseFunctions/Relays'
|
||||
import TextContent from '../../Components/TextContent'
|
||||
@ -114,7 +114,7 @@ export const NoteCard: React.FC<NoteCardProps> = ({
|
||||
if (note) {
|
||||
const event: Event = {
|
||||
content: positive ? '+' : '-',
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Reaction,
|
||||
pubkey: publicKey,
|
||||
tags: [...(note.tags ?? []), ['e', note.id], ['p', note.pubkey]],
|
||||
|
@ -4,7 +4,7 @@ import { Text, useTheme } from 'react-native-paper'
|
||||
import { getNip05Domain, usernamePubKey } from '../../Functions/RelayFunctions/Users'
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'
|
||||
import NostrosAvatar from '../NostrosAvatar'
|
||||
import moment from 'moment'
|
||||
import { fromUnixTime, formatDistance } from 'date-fns'
|
||||
import { getNpub } from '../../lib/nostr/Nip19'
|
||||
|
||||
interface ProfileCardProps {
|
||||
@ -31,7 +31,7 @@ export const ProfileData: React.FC<ProfileCardProps> = ({
|
||||
const theme = useTheme()
|
||||
const nPub = React.useMemo(() => (publicKey ? getNpub(publicKey) : ''), [publicKey])
|
||||
const date = React.useMemo(
|
||||
() => (timestamp ? moment.unix(timestamp).format('L HH:mm') : null),
|
||||
() => (timestamp ? formatDistance(fromUnixTime(timestamp), new Date()) : null),
|
||||
[timestamp],
|
||||
)
|
||||
|
||||
|
@ -5,7 +5,7 @@ import { ImageSourcePropType, Linking, StyleSheet, View } from 'react-native'
|
||||
import { AppContext } from '../../Contexts/AppContext'
|
||||
import { getUser, User } from '../../Functions/DatabaseFunctions/Users'
|
||||
import { formatPubKey } from '../../Functions/RelayFunctions/Users'
|
||||
import moment from 'moment'
|
||||
import getUnixTime from 'date-fns/getUnixTime'
|
||||
import { Card, Text, useTheme } from 'react-native-paper'
|
||||
import { getLinkPreview } from 'link-preview-js'
|
||||
import { getNip19Key, getNpub } from '../../lib/nostr/Nip19'
|
||||
@ -113,7 +113,7 @@ export const TextContent: React.FC<TextContentProps> = ({
|
||||
|
||||
if (database) {
|
||||
getUser(pudKey, database).then((user) => {
|
||||
setLoadedUsers(moment().unix())
|
||||
setLoadedUsers(getUnixTime(new Date()))
|
||||
setUserNames((prev) => {
|
||||
if (user?.name) prev[mentionIndex] = `@${user.name}`
|
||||
return prev
|
||||
|
@ -1,4 +1,4 @@
|
||||
import moment from 'moment'
|
||||
import getUnixTime from 'date-fns/getUnixTime'
|
||||
import { QuickSQLiteConnection } from 'react-native-quick-sqlite'
|
||||
import RelayPool from '../../../lib/nostr/RelayPool/intex'
|
||||
import { getUser, getUsers, User } from '../../DatabaseFunctions/Users'
|
||||
@ -57,7 +57,7 @@ export const populatePets: (
|
||||
if (results) {
|
||||
const event: Event = {
|
||||
content: '',
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: 3,
|
||||
pubkey: publicKey,
|
||||
tags: usersToTags(results),
|
||||
@ -81,7 +81,7 @@ export const populateProfile: (
|
||||
}
|
||||
const event: Event = {
|
||||
content: JSON.stringify(profile),
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: 0,
|
||||
pubkey: publicKey,
|
||||
tags: usersToTags([result]),
|
||||
|
@ -11,7 +11,7 @@ import {
|
||||
import { getUser, User } from '../../Functions/DatabaseFunctions/Users'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { username, usersToTags } from '../../Functions/RelayFunctions/Users'
|
||||
import moment from 'moment'
|
||||
import { getUnixTime, formatDistance, fromUnixTime } from 'date-fns'
|
||||
import TextContent from '../../Components/TextContent'
|
||||
import { encrypt, decrypt } from '../../lib/nostr/Nip04'
|
||||
import {
|
||||
@ -117,7 +117,7 @@ export const ConversationPage: React.FC<ConversationPageProps> = ({ route }) =>
|
||||
if (input !== '' && otherPubKey && publicKey && privateKey) {
|
||||
const event: Event = {
|
||||
content: input,
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.EncryptedDirectMessage,
|
||||
pubkey: publicKey,
|
||||
tags: usersToTags([otherUser]),
|
||||
@ -186,7 +186,7 @@ export const ConversationPage: React.FC<ConversationPageProps> = ({ route }) =>
|
||||
/>
|
||||
</View>
|
||||
)}
|
||||
<Text>{moment.unix(item.created_at).format('L HH:mm')}</Text>
|
||||
<Text>{formatDistance(fromUnixTime(item.created_at), new Date())}</Text>
|
||||
</View>
|
||||
</View>
|
||||
<TextContent content={item.content} />
|
||||
|
@ -24,12 +24,12 @@ import {
|
||||
} from 'react-native-paper'
|
||||
import { UserContext } from '../../Contexts/UserContext'
|
||||
import { navigate } from '../../lib/Navigation'
|
||||
import moment from 'moment'
|
||||
import RBSheet from 'react-native-raw-bottom-sheet'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons'
|
||||
import { useFocusEffect } from '@react-navigation/native'
|
||||
import ProfileData from '../../Components/ProfileData'
|
||||
import { fromUnixTime, formatDistance } from 'date-fns'
|
||||
|
||||
export const ConversationsFeed: React.FC = () => {
|
||||
const theme = useTheme()
|
||||
@ -125,7 +125,7 @@ export const ConversationsFeed: React.FC = () => {
|
||||
/>
|
||||
<View style={styles.contactInfo}>
|
||||
<View style={styles.contactDate}>
|
||||
<Text>{moment.unix(item.created_at).format('L HH:mm')}</Text>
|
||||
<Text>{formatDistance(fromUnixTime(item.created_at), new Date())}</Text>
|
||||
{item.pubkey !== publicKey && !item.read && <Badge size={16}></Badge>}
|
||||
</View>
|
||||
</View>
|
||||
|
@ -6,7 +6,7 @@ import { useTranslation } from 'react-i18next'
|
||||
import { UserContext } from '../../Contexts/UserContext'
|
||||
import { getUser } from '../../Functions/DatabaseFunctions/Users'
|
||||
import { Kind } from 'nostr-tools'
|
||||
import moment from 'moment'
|
||||
import getUnixTime from 'date-fns/getUnixTime'
|
||||
import {
|
||||
Avatar,
|
||||
Button,
|
||||
@ -81,7 +81,7 @@ export const ProfileConfigPage: React.FC = () => {
|
||||
nip05: result?.nip05,
|
||||
picture,
|
||||
}),
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Metadata,
|
||||
pubkey: publicKey,
|
||||
tags: [],
|
||||
@ -115,7 +115,7 @@ export const ProfileConfigPage: React.FC = () => {
|
||||
lud06: result?.lnurl,
|
||||
nip05,
|
||||
}),
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Metadata,
|
||||
pubkey: publicKey,
|
||||
tags: [],
|
||||
@ -149,7 +149,7 @@ export const ProfileConfigPage: React.FC = () => {
|
||||
nip05: result?.nip05,
|
||||
lud06: lnurl,
|
||||
}),
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Metadata,
|
||||
pubkey: publicKey,
|
||||
tags: [],
|
||||
@ -183,7 +183,7 @@ export const ProfileConfigPage: React.FC = () => {
|
||||
name,
|
||||
about,
|
||||
}),
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Metadata,
|
||||
pubkey: publicKey,
|
||||
tags: [],
|
||||
|
@ -5,7 +5,7 @@ import { AppContext } from '../../Contexts/AppContext'
|
||||
import { UserContext } from '../../Contexts/UserContext'
|
||||
import { getUsers, User } from '../../Functions/DatabaseFunctions/Users'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import moment from 'moment'
|
||||
import getUnixTime from 'date-fns/getUnixTime'
|
||||
import { StyleSheet, View } from 'react-native'
|
||||
import Logo from '../../Components/Logo'
|
||||
import { Button, Text, useTheme } from 'react-native-paper'
|
||||
@ -70,7 +70,7 @@ export const ProfileLoadPage: React.FC = () => {
|
||||
{
|
||||
kinds: [Kind.Text],
|
||||
authors,
|
||||
since: moment().unix() - 86400,
|
||||
since: getUnixTime(new Date()) - 86400,
|
||||
},
|
||||
{
|
||||
kinds: [Kind.Metadata],
|
||||
|
@ -4,7 +4,7 @@ import { AppContext } from '../../Contexts/AppContext'
|
||||
import { Event } from '../../lib/nostr/Events'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { RelayPoolContext } from '../../Contexts/RelayPoolContext'
|
||||
import moment from 'moment'
|
||||
import getUnixTime from 'date-fns/getUnixTime'
|
||||
import { Note } from '../../Functions/DatabaseFunctions/Notes'
|
||||
import { getETags, getTaggedPubKeys } from '../../Functions/RelayFunctions/Events'
|
||||
import { getUsers, User } from '../../Functions/DatabaseFunctions/Users'
|
||||
@ -100,7 +100,7 @@ export const SendPage: React.FC<SendPageProps> = ({ route }) => {
|
||||
|
||||
const event: Event = {
|
||||
content: rawContent,
|
||||
created_at: moment().unix(),
|
||||
created_at: getUnixTime(new Date()),
|
||||
kind: Kind.Text,
|
||||
pubkey: publicKey,
|
||||
tags,
|
||||
|
@ -4,12 +4,20 @@ import { NativeModules, Platform } from 'react-native'
|
||||
import en from './Locales/en.json'
|
||||
import es from './Locales/es.json'
|
||||
import ru from './Locales/ru.json'
|
||||
/* eslint-disable import/no-duplicates */
|
||||
import setDefaultOptions from 'date-fns/setDefaultOptions'
|
||||
import { enUS as dateEnUS, es as dateEs, ru as dateRu } from 'date-fns/locale'
|
||||
/* eslint-enable import/no-duplicates */
|
||||
|
||||
const locale =
|
||||
Platform.OS === 'ios'
|
||||
? NativeModules.SettingsManager.settings.AppleLocale
|
||||
: NativeModules.I18nManager.localeIdentifier
|
||||
|
||||
const dateLocales = { es: dateEs, ru: dateRu, en: dateEnUS }
|
||||
const deviceLocale: string = locale?.split('_')[0] ?? 'en'
|
||||
setDefaultOptions({ locale: dateLocales[deviceLocale] })
|
||||
|
||||
i18n.locale = locale
|
||||
i18n.use(initReactI18next).init({
|
||||
compatibilityJSON: 'v3',
|
||||
|
@ -25,12 +25,12 @@
|
||||
"create-hash": "^1.2.0",
|
||||
"crypto-browserify": "^3.12.0",
|
||||
"cryptr": "^6.0.3",
|
||||
"date-fns": "^2.29.3",
|
||||
"events": "^3.3.0",
|
||||
"i18next": "^22.4.9",
|
||||
"link-preview-js": "^3.0.4",
|
||||
"lnurl-pay": "^2.1.1",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"moment": "^2.29.4",
|
||||
"nostr-tools": "^1.1.1",
|
||||
"react": "18.1.0",
|
||||
"react-i18next": "^12.1.4",
|
||||
|
10
yarn.lock
10
yarn.lock
@ -3356,6 +3356,11 @@ csstype@^3.0.2:
|
||||
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.1.tgz#841b532c45c758ee546a11d5bd7b7b473c8c30b9"
|
||||
integrity sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==
|
||||
|
||||
date-fns@^2.29.3:
|
||||
version "2.29.3"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
|
||||
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
|
||||
|
||||
dayjs@^1.8.15:
|
||||
version "1.11.6"
|
||||
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.6.tgz#2e79a226314ec3ec904e3ee1dd5a4f5e5b1c7afb"
|
||||
@ -6437,11 +6442,6 @@ mkdirp@^0.5.1:
|
||||
dependencies:
|
||||
minimist "^1.2.6"
|
||||
|
||||
moment@^2.29.4:
|
||||
version "2.29.4"
|
||||
resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
|
||||
integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
|
Loading…
Reference in New Issue
Block a user