mirror of
https://github.com/KoalaSat/nostros.git
synced 2024-09-29 06:30:47 +00:00
Merge branch 'main' into main
This commit is contained in:
commit
b5b364ec83
@ -44,6 +44,7 @@ Nostros chat
|
||||
- [x] Global feed filters and blocked users
|
||||
- [x] Relay colouring
|
||||
- [x] Push events to private relay
|
||||
- [x] Zaps
|
||||
|
||||
# Kudos
|
||||
|
||||
|
@ -139,8 +139,8 @@ android {
|
||||
applicationId "com.nostros"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 51
|
||||
versionName "v0.3.0.4-alpha"
|
||||
versionCode 52
|
||||
versionName "v0.3.0.5-alpha"
|
||||
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
||||
|
||||
if (isNewArchitectureEnabled()) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { t } from 'i18next'
|
||||
import * as React from 'react'
|
||||
import { StyleSheet, View } from 'react-native'
|
||||
import { Dimensions, StyleSheet, View } from 'react-native'
|
||||
import Clipboard from '@react-native-clipboard/clipboard'
|
||||
import { IconButton, Snackbar, Text, TouchableRipple } from 'react-native-paper'
|
||||
import Share from 'react-native-share'
|
||||
@ -49,7 +49,7 @@ export const GroupShare: React.FC<GroupShareProps> = ({ group }) => {
|
||||
<QRCode
|
||||
quietZone={8}
|
||||
value={`nostr:${nEvent}`}
|
||||
size={350}
|
||||
size={Dimensions.get('window').width - 64}
|
||||
logoBorderRadius={50}
|
||||
logoSize={100}
|
||||
logo={{ uri: group?.picture }}
|
||||
|
@ -1,6 +1,6 @@
|
||||
import React, { useEffect, useState } from 'react'
|
||||
import QRCode from 'react-native-qrcode-svg'
|
||||
import { Linking, StyleSheet, View } from 'react-native'
|
||||
import { Dimensions, Linking, StyleSheet, View } from 'react-native'
|
||||
import Clipboard from '@react-native-clipboard/clipboard'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import RBSheet from 'react-native-raw-bottom-sheet'
|
||||
@ -76,7 +76,7 @@ export const LnPreview: React.FC<LnPreviewProps> = ({
|
||||
<Card style={styles.qrContainer}>
|
||||
<Card.Content>
|
||||
<View style={styles.qr}>
|
||||
<QRCode value={invoice} size={300} quietZone={8} />
|
||||
<QRCode value={invoice} quietZone={8} size={Dimensions.get('window').width - 64} />
|
||||
</View>
|
||||
<View style={styles.qrText}>
|
||||
<Text>{decodedLnUrl?.satoshis} </Text>
|
||||
|
@ -19,14 +19,14 @@ interface NoteActionsProps {
|
||||
export const NoteActions: React.FC<NoteActionsProps> = ({ bottomSheetRef }) => {
|
||||
const theme = useTheme()
|
||||
const { database, displayNoteDrawer, relayColouring } = React.useContext(AppContext)
|
||||
const { setDisplayrelayDrawer } = React.useContext(RelayPoolContext)
|
||||
const { setDisplayrelayDrawer, lastEventId } = React.useContext(RelayPoolContext)
|
||||
const [note, setNote] = React.useState<Note>()
|
||||
const [relays, setRelays] = React.useState<NoteRelay[]>([])
|
||||
const bottomSheetShareRef = React.useRef<RBSheet>(null)
|
||||
|
||||
React.useEffect(() => {
|
||||
loadNote()
|
||||
}, [displayNoteDrawer])
|
||||
}, [displayNoteDrawer, lastEventId])
|
||||
|
||||
const loadNote: () => void = () => {
|
||||
if (database && displayNoteDrawer) {
|
||||
@ -92,7 +92,10 @@ export const NoteActions: React.FC<NoteActionsProps> = ({ bottomSheetRef }) => {
|
||||
<View style={styles.relayList}>
|
||||
{relayColouring &&
|
||||
relays.map((relay, index) => (
|
||||
<TouchableNativeFeedback onPress={() => setDisplayrelayDrawer(relay.relay_url)} key={relay.relay_url}>
|
||||
<TouchableNativeFeedback
|
||||
onPress={() => setDisplayrelayDrawer(relay.relay_url)}
|
||||
key={relay.relay_url}
|
||||
>
|
||||
<View
|
||||
style={[
|
||||
styles.relay,
|
||||
@ -137,7 +140,7 @@ const styles = StyleSheet.create({
|
||||
flexDirection: 'row',
|
||||
justifyContent: 'space-between',
|
||||
marginTop: 16,
|
||||
marginBottom: 16
|
||||
marginBottom: 16,
|
||||
},
|
||||
actionButton: {
|
||||
alignItems: 'center',
|
||||
|
@ -55,13 +55,11 @@ interface NoteCardProps {
|
||||
showPreview?: boolean
|
||||
showRepostPreview?: boolean
|
||||
numberOfLines?: number
|
||||
copyOnPress?: boolean
|
||||
mode?: 'elevated' | 'outlined' | 'contained'
|
||||
}
|
||||
|
||||
export const NoteCard: React.FC<NoteCardProps> = ({
|
||||
note,
|
||||
copyOnPress = true,
|
||||
showRelayColors = true,
|
||||
showAvatarImage = true,
|
||||
showAnswerData = true,
|
||||
@ -74,8 +72,7 @@ export const NoteCard: React.FC<NoteCardProps> = ({
|
||||
}) => {
|
||||
const theme = useTheme()
|
||||
const { publicKey, privateKey } = React.useContext(UserContext)
|
||||
const { relayPool, lastEventId, addRelayItem } =
|
||||
useContext(RelayPoolContext)
|
||||
const { relayPool, lastEventId, addRelayItem } = useContext(RelayPoolContext)
|
||||
const {
|
||||
database,
|
||||
showSensitive,
|
||||
@ -194,7 +191,6 @@ export const NoteCard: React.FC<NoteCardProps> = ({
|
||||
onPressUser={(user) => setDisplayUserDrawer(user.id)}
|
||||
showPreview={showPreview}
|
||||
numberOfLines={numberOfLines}
|
||||
copyOnPress={copyOnPress}
|
||||
/>
|
||||
)}
|
||||
{note?.repost_id && (
|
||||
@ -206,7 +202,6 @@ export const NoteCard: React.FC<NoteCardProps> = ({
|
||||
showRepostPreview={false}
|
||||
showAction={false}
|
||||
showRelayColors={false}
|
||||
copyOnPress={false}
|
||||
/>
|
||||
) : (
|
||||
<Chip
|
||||
|
@ -61,9 +61,7 @@ export const ProfileData: React.FC<ProfileCardProps> = ({
|
||||
)}
|
||||
</View>
|
||||
<Text numberOfLines={1}>
|
||||
{timestamp ?
|
||||
date
|
||||
: validNip05 ? getNip05Domain(nip05) : ''}
|
||||
{timestamp ? date : validNip05 ? getNip05Domain(nip05) : ''}
|
||||
</Text>
|
||||
</View>
|
||||
</View>
|
||||
|
@ -40,7 +40,7 @@ interface RelayCardProps {
|
||||
export const RelayCard: React.FC<RelayCardProps> = ({ url, bottomSheetRef }) => {
|
||||
const theme = useTheme()
|
||||
const { publicKey } = React.useContext(UserContext)
|
||||
const { updateRelayItem, relayPool, removeRelayItem, sendRelays, relays } =
|
||||
const { updateRelayItem, relayPool, removeRelayItem, sendRelays } =
|
||||
React.useContext(RelayPoolContext)
|
||||
const { database } = React.useContext(AppContext)
|
||||
const [relay, setRelay] = React.useState<Relay>()
|
||||
|
@ -10,7 +10,6 @@ import { Avatar, Card, Text, useTheme } from 'react-native-paper'
|
||||
import { getNip19Key, getNpub } from '../../lib/nostr/Nip19'
|
||||
import { navigate } from '../../lib/Navigation'
|
||||
import { validBlueBirdUrl, validImageUrl, validMediaUrl } from '../../Functions/NativeFunctions'
|
||||
import Clipboard from '@react-native-clipboard/clipboard'
|
||||
import FastImage from 'react-native-fast-image'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { decode, PaymentRequestObject, TagsObject } from 'bolt11'
|
||||
@ -22,7 +21,6 @@ interface TextContentProps {
|
||||
showPreview?: boolean
|
||||
onPressUser?: (user: User) => void
|
||||
numberOfLines?: number
|
||||
copyOnPress?: boolean
|
||||
}
|
||||
|
||||
export const TextContent: React.FC<TextContentProps> = ({
|
||||
@ -31,7 +29,6 @@ export const TextContent: React.FC<TextContentProps> = ({
|
||||
showPreview = true,
|
||||
onPressUser = () => {},
|
||||
numberOfLines,
|
||||
copyOnPress = true,
|
||||
}) => {
|
||||
const theme = useTheme()
|
||||
const { t } = useTranslation('common')
|
||||
@ -267,8 +264,8 @@ export const TextContent: React.FC<TextContentProps> = ({
|
||||
},
|
||||
]}
|
||||
childrenProps={{ allowFontScaling: false }}
|
||||
onLongPress={copyOnPress ? () => Clipboard.setString(text) : undefined}
|
||||
numberOfLines={numberOfLines}
|
||||
selectable
|
||||
>
|
||||
{text}
|
||||
</ParsedText>
|
||||
|
@ -243,7 +243,7 @@ export const AppContextProvider = ({ children }: AppContextProviderProps): JSX.E
|
||||
longPressZap,
|
||||
setLongPressZap,
|
||||
displayNoteDrawer,
|
||||
setDisplayNoteDrawer
|
||||
setDisplayNoteDrawer,
|
||||
}}
|
||||
>
|
||||
{children}
|
||||
|
@ -83,11 +83,11 @@ export const RelayPoolContextProvider = ({
|
||||
}
|
||||
|
||||
const debouncedEventIdHandler = useMemo(
|
||||
() => debounce(changeEventIdHandler, 1000),
|
||||
() => debounce(changeEventIdHandler, 250),
|
||||
[setLastEventId],
|
||||
)
|
||||
const debouncedConfirmationHandler = useMemo(
|
||||
() => debounce(changeConfirmationIdHandler, 500),
|
||||
() => debounce(changeConfirmationIdHandler, 250),
|
||||
[setLastConfirmationId],
|
||||
)
|
||||
|
||||
|
@ -405,4 +405,4 @@
|
||||
"emptyButton": "Unterhaltung beginnen"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -411,4 +411,4 @@
|
||||
"emptyButton": "Open a conversation"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -390,4 +390,4 @@
|
||||
"emptyButton": "Abrir una conversación"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -382,4 +382,4 @@
|
||||
"emptyButton": "Открыть чат"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -329,8 +329,8 @@ export const GroupPage: React.FC<GroupPageProps> = ({ route }) => {
|
||||
friction={2}
|
||||
overshootRight={false}
|
||||
onSwipeableOpen={() => {
|
||||
setReply(item)
|
||||
row[index].close()
|
||||
setReply(item)
|
||||
}}
|
||||
>
|
||||
<View style={styles.messageRow} key={index}>
|
||||
|
@ -172,6 +172,8 @@ export const SendPage: React.FC<SendPageProps> = ({ route }) => {
|
||||
value={content}
|
||||
onChangeText={onChangeText}
|
||||
scrollEnabled
|
||||
// cursorColor={theme.colors.inverseOnSurface}
|
||||
// selectionColor={theme.colors.inverseOnSurface}
|
||||
/>
|
||||
</View>
|
||||
</View>
|
||||
|
Loading…
Reference in New Issue
Block a user