Skip to content

Commit

Permalink
Redirecting to payment if only single address is present
Browse files Browse the repository at this point in the history
  • Loading branch information
shubhamkmr04 committed Sep 19, 2023
1 parent 4cd9bb6 commit c17fc2d
Show file tree
Hide file tree
Showing 2 changed files with 83 additions and 34 deletions.
6 changes: 5 additions & 1 deletion views/Settings/AddContact.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1078,7 +1078,11 @@ export default class AddContact extends React.Component<
nip05[nip05.length - 1] === '') ||
(nostrNpub?.length > 1 &&
nostrNpub[nostrNpub.length - 1] === '') ||
!(lnAddress[0] || onchainAddress[0])
!(
lnAddress[0] ||
onchainAddress[0] ||
pubkey[0]
)
}
/>
</View>
Expand Down
111 changes: 78 additions & 33 deletions views/Settings/Contacts.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import * as React from 'react';
import { Text, View, TouchableOpacity, FlatList, Image } from 'react-native';
import { Header, Icon, SearchBar, Chip, Divider } from 'react-native-elements';
import { Header, Icon, SearchBar, Divider } from 'react-native-elements';
import AddIcon from '../../assets/images/SVG/Add.svg';
import EncryptedStorage from 'react-native-encrypted-storage';

Expand Down Expand Up @@ -74,14 +74,85 @@ export default class Contacts extends React.Component<
}
});
};
displayAddress = (item) => {
const hasLnAddress =
item.lnAddress &&
item.lnAddress.length === 1 &&
item.lnAddress[0] !== '';
const hasOnchainAddress =
item.onchainAddress &&
item.onchainAddress.length === 1 &&
item.onchainAddress[0] !== '';
const hasPubkey =
item.pubkey && item.pubkey.length === 1 && item.pubkey[0] !== '';

if (hasLnAddress + hasOnchainAddress + hasPubkey >= 2) {
return localeString('views.Settings.Contacts.multipleAddresses');
}

if (hasLnAddress) {
return item.lnAddress[0].length > 15
? `${item.lnAddress[0].slice(0, 4)}...${item.lnAddress[0].slice(
-4
)}`
: item.lnAddress[0];
}

if (hasOnchainAddress) {
return item.onchainAddress[0].length > 15
? `${item.onchainAddress[0].slice(
0,
4
)}...${item.onchainAddress[0].slice(-4)}`
: item.onchainAddress[0];
}

if (hasPubkey) {
return item.pubkey[0].length > 15
? `${item.pubkey[0].slice(0, 4)}...${item.pubkey[0].slice(-4)}`
: item.pubkey[0];
}

return localeString('views.Settings.Contacts.multipleAddresses');
};

renderContactItem = ({ item }: { item: ContactItem }) => (
<TouchableOpacity
onPress={() =>
this.props.navigation.navigate('ContactDetails', {
contactId: item.id
})
}
onPress={() => {
(item.lnAddress &&
item.lnAddress.length === 1 &&
item.lnAddress[0] !== '' &&
item.onchainAddress[0] === '' &&
item.pubkey[0] === '' &&
this.state.SendScreen &&
this.props.navigation.navigate('Send', {
destination: item.lnAddress[0],
contactName: item.name
})) ||
(item.onchainAddress &&
item.onchainAddress.length === 1 &&
item.onchainAddress[0] !== '' &&
item.lnAddress[0] === '' &&
item.pubkey[0] === '' &&
this.state.SendScreen &&
this.props.navigation.navigate('Send', {
destination: item.onchainAddress[0],
contactName: item.name
})) ||
(item.pubkey &&
item.pubkey.length === 1 &&
item.pubkey[0] !== '' &&
item.lnAddress[0] === '' &&
item.onchainAddress[0] === '' &&
this.state.SendScreen &&
this.props.navigation.navigate('Send', {
destination: item.pubkey[0],
contactName: item.name
})) ||
this.props.navigation.navigate('ContactDetails', {
contactId: item.id
});
}}
>
<View
style={{
Expand Down Expand Up @@ -112,33 +183,7 @@ export default class Contacts extends React.Component<
color: themeColor('secondaryText')
}}
>
{item.lnAddress &&
item.lnAddress.length === 1 &&
item.lnAddress[0] !== '' &&
item.onchainAddress[0] === ''
? item.lnAddress[0].length > 15
? `${item.lnAddress[0].slice(
0,
4
)}...${item.lnAddress[0].slice(-4)}`
: item.lnAddress[0]
: item.lnAddress.length > 1
? `${localeString(
'views.Settings.Contacts.multipleAddresses'
)}`
: item.onchainAddress &&
item.onchainAddress.length === 1 &&
item.onchainAddress[0] !== '' &&
item.lnAddress[0] === ''
? item.onchainAddress[0].length > 15
? `${item.onchainAddress[0].slice(
0,
4
)}...${item.onchainAddress[0].slice(-4)}`
: item.onchainAddress[0]
: `${localeString(
'views.Settings.Contacts.multipleAddresses'
)}`}
{this.displayAddress(item)}
</Text>
</View>
</View>
Expand Down

0 comments on commit c17fc2d

Please sign in to comment.